使用PHP開發WebSocket,打造即時訊息推播系統
// 创建WebSocket服务器实例,监听指定端口 $server = new SwooleWebSocketServer('0.0.0.0', 9501); // 监听WebSocket连接打开事件 $server->on('open', function (SwooleWebSocketServer $server, SwooleHttpRequest $request) { echo "WebSocket连接打开 "; }); // 监听WebSocket消息事件 $server->on('message', function (SwooleWebSocketServer $server, SwooleWebSocketFrame $frame) { echo "收到消息:{$frame->data} "; // 推送消息给所有连接的客户端 $server->push($frame->fd, "服务器收到消息:{$frame->data}"); }); // 监听WebSocket连接关闭事件 $server->on('close', function (SwooleWebSocketServer $server, int $fd) { echo "WebSocket连接关闭 "; }); // 启动WebSocket服务器 $server->start();
上述程式碼使用Swoole擴充功能建立WebSocket伺服器實例,監聽9501埠。每當有客戶端連線、傳送訊息或關閉連線時,都會觸發對應的事件處理函數。
<!DOCTYPE html> <html> <head> <title>WebSocket示例</title> </head> <body> <script type="text/javascript"> // 创建WebSocket对象,与服务器建立连接 var ws = new WebSocket('ws://localhost:9501'); // 监听WebSocket连接打开事件 ws.onopen = function () { console.log('WebSocket连接已打开'); }; // 监听WebSocket消息事件 ws.onmessage = function (event) { console.log('收到消息:' + event.data); }; // 监听WebSocket连接关闭事件 ws.onclose = function () { console.log('WebSocket连接已关闭'); }; // 发送消息 function sendMessage() { var message = document.getElementById('message').value; ws.send(message); } </script> <input type="text" id="message" placeholder="输入消息" /> <button onclick="sendMessage()">发送消息</button> </body> </html>
上述程式碼在瀏覽器端使用JavaScript建立WebSocket對象,與伺服器建立連線。透過監聽WebSocket事件,可以實現接收訊息、發送訊息和捕獲連接關閉等功能。
現在,你可以在客戶端頁面上輸入訊息並發送,伺服器會收到並回覆對應的訊息。同時,客戶端頁面上會顯示收到的訊息。
WebSocket的即時通訊能力為Web開發提供了更多的可能性,特別適用於聊天應用、即時監控和通知等場景。相信本文能夠幫助你入門WebSocket開發,並激發更多創意和想法。
以上是使用php開發Websocket,打造即時訊息推播系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!