php websocket开放接口,接口WebSocket

WebSocket接口

新增自V0.0.4

接口类文件为: Api/Websocket.php

Websocket接口时指使用应用层Websocket协议来解析数据流的接口类文件。

使用Websocket接口, 只需要实例化Api\Websocket.php即可。

使用Websocket接口, 就是使用了H5推出的WebSocket协议。可以在服务器和客户端浏览器之间维持一个长链接。颠覆传统的HTTP交互方式。

Websocket可以使服务器从只能被动响应的基础上, 新增了主动推送的功能。

Websocket是Web类即时通讯服务的基础所在。如在线聊天, 实时监控等。

使用方法

使用时调用Websocket的接口即可。$telnet = new \MeepoPS\Api\Websocket('0.0.0.0', '19910');

在客户端, 在浏览器中使用JavaScript原生语法即可。ws = new WebSocket("ws://127.0.0.1:19910");

ws.onopen = function() {

console.log("连接成功");

ws.send('tom');

console.log("给服务端发送一个字符串:tom");

};

ws.onmessage = function(e) {

console.log("收到服务端的消息:" + e.data);

};

特殊属性

除接口中所阐述的通用属性外, Websocket接口所独有的:

收到PING类型消息时回调函数: callbackWSPing名称: callbackWSPing.

类型: string.

描述: callbackWSPing用来设置服务器收到PING类型的消息时的回调函数.

提示: Webscoket协议的PING类型消息并不是说收到的文本消息是字符串"PING", 而是根据WebSocket协议, 某次请求中opcode字段的值为0x9时, 这条消息就是PING类型的消息。

示例:

这是我们自行编写的代码: demo.php<?php

//引入MeepoPS

require_once 'MeepoPS/index.php';

//使用Webscoket协议的Websocket接口类

$webSocket = new \MeepoPS\Api\Websocket('0.0.0.0', '19910');

//设置Webscoket接口特有的回掉函数

$webSocket->callbackWSPing = function($connect){

echo "收到PING类型的消息\n";

};

//启动MeepoPS

\MeepoPS\runMeepoPS();

收到PONG类型消息时回调函数: callbackWSPong名称: callbackWSPong.

类型: string.

描述: callbackWSPong用来设置服务器收到PONG类型的消息时的回调函数.

提示: Webscoket协议的PONG类型消息并不是说收到的文本消息是字符串"PONG", 而是根据WebSocket协议, 某次请求中opcode字段的值为0xa时, 这条消息就是PONG类型的消息。

示例:

这是我们自行编写的代码: demo.php<?php

//引入MeepoPS

require_once 'MeepoPS/index.php';

//使用Webscoket协议的Websocket接口类

$webSocket = new \MeepoPS\Api\Websocket('0.0.0.0', '19910');

//设置Webscoket接口特有的回掉函数

$webSocket->callbackWSPong = function($connect){

echo "收到PONG类型的消息\n";

};

//启动MeepoPS

\MeepoPS\runMeepoPS();

断开链接时回调函数: callbackWSDisconnect名称: callbackWSDisconnect.

类型: string.

描述: callbackWSDisconnect用来设置断开链接时的回调函数. 包括服务器主动断开链接时、客户端发送断开链接类型的消息时。

提示: Webscoket协议的断开链接类型消息并不是说单纯的断开链接, 而是根据WebSocket协议, 某次请求中opcode字段的值为0x8时, 这条消息就是断开链接类型的消息。在浏览器(IE我没测, 也不想测), 刷新页面, 正常关闭页面时, 浏览器都会自动发送断开链接的消息。

警告: 不可完全依赖此回调函数来处理业务。因为在客户端断电等特殊情况下, 浏览器尚未来的及发送断开链接类型消息时就已经被强制关闭了。因此, 检测链接是否存货, 应该依靠PING。 比如5秒一个PING, 10秒都没收到PONG, 服务端就断开此链接。

示例:

这是我们自行编写的代码: demo.php<?php

//引入MeepoPS

require_once 'MeepoPS/index.php';

//使用Webscoket协议的Websocket接口类

$webSocket = new \MeepoPS\Api\Websocket('0.0.0.0', '19910');

//设置Webscoket接口特有的回掉函数

$webSocket->callbackWSDisconnect = function($connect){

echo '链接即将被关闭, ID: ' . $connect->id . "\n";

};

//启动MeepoPS

\MeepoPS\runMeepoPS();

特殊方法

无, 与接口中所阐述的通用方法完全一致。

了解WebSocket协议是什么, 这里是 传送门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值