php swool 聊天室,swoole简单的聊天室demo(修正版)
时间: 2023-07-31 15:14:06 浏览: 94
以下是使用 Swoole 实现的简单聊天室 demo:
```php
<?php
// 创建 WebSocket 服务器,监听 0.0.0.0:9502 端口
$server = new swoole_websocket_server("0.0.0.0", 9502);
// 监听 WebSocket 连接打开事件
$server->on('open', function (swoole_websocket_server $server, $request) {
echo "server: handshake success with fd{$request->fd}\n";
});
// 监听 WebSocket 消息事件
$server->on('message', function (swoole_websocket_server $server, $frame) {
echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
// 向所有客户端广播消息
foreach ($server->connections as $fd) {
if ($server->isEstablished($fd)) {
$server->push($fd, $frame->data);
}
}
});
// 监听 WebSocket 连接关闭事件
$server->on('close', function ($ser, $fd) {
echo "client {$fd} closed\n";
});
// 启动 WebSocket 服务器
$server->start();
```
运行该程序后,可以使用 WebSocket 客户端连接到 `ws://127.0.0.1:9502`,实现简单的聊天室功能。
注意:该程序仅为演示程序,没有进行任何安全措施。在实际应用中,需要对消息进行校验和过滤。