PHP-swoole搭建websocket服务

2022-11-30 10:42:47 浏览数 (1)

五、搭建websocket服务

5.1、简介

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

websocket解决服务器端与客户端即时通信的问题。 协议名:ws 加密通信 wss 通信成功 状态码 101

5.2、浏览器支持

5.3、html5中websocketApi

代码语言:javascript复制
var ws = new WebSocket("ws://localhost:9501");
  • Websocket事件
  • WebSocket 方法

.

5.4、swoole实现websocket服务

WebSocketServer 继承自 HttpServer

代码语言:javascript复制
$server = new SwooleWebSocketServer("0.0.0.0", 9501);
// 当WebSocket客户端与服务器建立连接并完成握手后会回调此函数
$server->on('open', function (SwooleWebSocketServer $server, SwooleHttpRequest $request) {
    echo "已连接成功n";
});
// 当服务器收到来自客户端的数据帧时会回调此函数  此回调方法不能缺少
$server->on('message', function (SwooleWebSocketServer $server, swoole_websocket_frame  $frame) {
     // 服务器端主动向客户端发送消息
    //$frmae->data 客户端发过来的数据
    // 服务器端向客户端发送消息
    $server->push($frame->fd, "this is server");
});
// 客户端关闭连接时触发此回调函数
$server->on('close', function ($ser, $fd) {
    echo "client {$fd} closedn";
});
// 启动服务
$server->start();

0 人点赞