基于swoole的websocket客户端,websocket client,基于ctp实现了标准的websocket协议(直接通过httpclient,之后进行upgrade,在一些场景中,回出现握手成功,一发送消息就被断开连接的问题,使用此库,可以解决该类问题)
基于swoole4实现的协程版websocket客户端,直接使用httpclient发送http请求,然后再通过upgrade的方式发送websocket请求,在一些场景下会出现握手成功,一发送消息就被断开连接的情况,本库基于TCP,按照websocket协议标准实现,可避免此类问题的出现
use writethesky\WebSocketClient\Client;
use writethesky\WebSocketClient\Frame;
// 需要在协程内
go(function(){
// 创建连接客户端,uri,超时(0,永不超时)
$client = new Client("ws://message.xxx.com/websocket", 0);
// 消息处理回调函数
$onMessage = function($frame) use ($client)
{
// 输出消息内容
var_dump($frame->getPayload());
};
// 绑定消息事件(会开启一个协程, 触发消息回调函数)
$client->on('message', $onMessage);
// 连接
$client->connect();
// 发送文本类型数据
$data = '{"appKey":"aaa","costInIsv":0,"pubTime":1569466912760,"sign":"7F23945DDC29B1B3B89B0AF2CE3521A1","type":"CONNECT"}';
// 数据,类型(text、bin、ping、pong、close),是否掩码处理
$frame = new Frame($data, "text", true);
$client->send($frame);
});