老师我的服务器代码是部署在阿里云服务器上,LNMP环境。
服务端ws_server.php代码:
$server = new swoole_websocket_server("0.0.0.0", 8812); //$server->set([]); $server->set( [ 'enable_static_handler' => true, 'document_root' => "/home/wwwroot/www.lingyuan88.com/public/swoole/data", ] ); //监听websocket连接打开事件 $server->on('open', 'onOpen'); function onOpen($server, $request) { print_r($request->fd); } // 监听ws消息事件 $server->on('message', function (swoole_websocket_server $server, $frame) { echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n"; $server->push($frame->fd, "singwa-push-secesss"); }); $server->on('close', function ($ser, $fd) { echo "client {$fd} closed\n"; }); $server->start();
客户端ws_client.html代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <h1>singwa-swoole-ws测试</h1> <script> var wsUrl = "ws://120.77.206.215:8812"; var websocket = new WebSocket(wsUrl); //实例对象的onopen属性 websocket.onopen = function(evt) { websocket.send("hello-sinwa"); console.log("conected-swoole-success"); } // 实例化 onmessage websocket.onmessage = function(evt) { console.log("ws-server-return-data:" + evt.data); } //onclose websocket.onclose = function(evt) { console.log("close"); } //onerror websocket.onerror = function(evt, e) { console.log("error:" + evt.data); } </script> </body> </html>
1. 在浏览器不加8812端口执行后结果提交:Provisional headers are shown
2. 在浏览器加8812端口执行后结果提交:Provisional headers are shown