- 安装 PHP 的 WebSocket 扩展,例如 Swoole、Ratchet 等。
- 创建一个 WebSocket 服务器,监听客户端的连接请求。
- 编写事件处理程序,处理客户端发送的数据和断开连接等事件。
- 在客户端上使用 JavaScript 创建一个 WebSocket 对象,并连接到服务器。
- 发送消息给服务器,并接收来自服务器的消息。
示例代码:
使用 Swoole 实现 WebSocket 服务器
$server = new \Swoole\Websocket\Server('0.0.0.0', 9501);
// 监听 WebSocket 连接事件
$server->on('open', function (\Swoole\Websocket\Server $server, \Swoole\Http\Request $request) {
echo "WebSocket 连接成功\n";
});
// 监听 WebSocket 消息事件
$server->on('message', function (\Swoole\Websocket\Server $server, \Swoole\Websocket\Frame $frame) {
echo "收到消息:{$frame->data}\n";
// 向客户端发送消息
$server->push($frame->fd, 'Hello, World!');
});
// 监听 WebSocket 关闭事件
$server->on('close', function (\Swoole\Websocket\Server $server, int $fd) {
echo "WebSocket 连接关闭\n";
});
$server->start();
在前端使用 JavaScript 创建 WebSocket 对象
const socket = new WebSocket('ws://localhost:9501');
// 监听连接成功事件
socket.addEventListener('open', event => {
console.log('WebSocket 连接成功');
// 发送消息给服务端
socket.send('Hello, Server!');
});
// 监听收到消息事件
socket.addEventListener('message', event => {
console.log(`收到消息:${event.data}`);
});
// 监听连接关闭事件
socket.addEventListener('close', event => {
console.log('WebSocket 连接关闭');
});