本教程详细讲解了如何在JavaScript中设计、接收和处理API接口的请求与响应数据,帮助开发者掌握前后端交互的关键技术。
JS API 接口接收与返回是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的支持复杂对象传输的协议,支持引用参数传递,内容输出重定向,分级错误处理,并且支持会话。该版本直接解压后就可以使用,其中属于公共文件。不论是客户端还是服务器端都需要这些文件。
如果你只需要使用客户端的话,需要上面提到的一些公共文件和一个特定的客户端文件即可开始使用了,在程序中包含 phprpc_client.php 文件就能完成这一操作,并且不需要单独包含公共文件。对于服务端来说,则需要三个指定的服务端文件来运行 PHPRPC 服务器,其中 dhparams 目录中的内容用于生成加密传输所需的密钥参数。
在 PHP 环境下(PHP 版本为4.3+、5或6),客户端要求开启 socket 扩展。服务端则必须有能够执行 PHP 脚本的 Web 服务器,例如 IIS、Apache 或 lighttpd,并且如果需要加密传输功能的话,则需要保证 session 配置正确。
以下是两个示例:
**服务端代码:**
```php
add(array(hello, md5, sha1)); //一次性注册多个函数
$server->add(trim); //单个函数注册
//类方法调用示例
class Example1 {
static function foo() { return foo; }
function bar() { return bar; }
}
$server->add(array(foo, Example1)); //静态方法直接使用
$server->add(new Example1(), array(bar));
//设置别名调用函数和其它选项
$server->add(hello, NULL, hi);
$server->setCharset(UTF-8); //设定编码格式为 UTF-8
$server->start(); //启动服务端程序
?>
```
**客户端代码:**
```php
Hello(word); //执行服务器上的函数并输出结果
//进一步的客户端选项设置示例:
$client->setKeyLength(1000); //密钥长度
$client->setEncryptMode(3); //加密等级,可选范围为 0-3
$client->setTimeout(10); //超时时间设定
?>
```
**服务端会话管理示例:**
```php
add(array(inc, count), new ExampleCounter()); //注册计数器类的方法
$server->start();
?>
```
**客户端会话管理示例:**
```php
useService(http://127.0.0.1/1.php); //服务端地址
echo $client->inc(), \r\n; //调用计数器方法并输出结果
echo $client->count(), \r\n;
?>
```
每次刷新客户端时,都会创建新的客户端实例。因此服务器端不能识别先前的会话状态。