<?php $server = new swoole_websocket_server("0.0.0.0", 8080); $server->on('message', function (swoole_websocket_server $server, $frame) { foreach ($server->connection_list() as $fd) { $server->push($fd, $frame->data, true); } }); $server->start();
<?php $server = new swoole_websocket_server("", 9501); $server->on('open', function (swoole_websocket_server $server, $request) { echo "server: handshake success with fd{$request->fd}\n"; }); $server->on('message', function (swoole_websocket_server $server, $frame) { echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n"; $conn_list = $server->connection_list(); //var_dump($conn_list); 广播 foreach ($conn_list as $fd) { $server->push($fd, "from: client{$frame->fd}, content: " . $frame->data); } //$server->push($frame->fd, "from: client{$fd}, content: ".$frame->data); }); $server->on('close', function ($ser, $fd) { echo "client {$fd} closed\n"; }); $server->start();
<?php //创建websocket服务器对象,监听0.0.0.0:9502端口 $ws = new swoole_websocket_server("0.0.0.0", 9502); //监听WebSocket连接打开事件 $ws->on('open', function ($ws, $request) { var_dump($request->fd, $request->get, $request->server); $start_fd = 0; while (true) { $conn_list = $ws->connection_list($start_fd, 10); if ($conn_list === false or count($conn_list) === 0) { echo "finish\n"; break; } $start_fd = end($conn_list); var_dump($conn_list); foreach ($conn_list as $fd) { $ws->push($fd, "消息: " . $request->fd . "来到了房间"); } } }); //监听WebSocket消息事件 $ws->on('message', function ($ws, $frame) { echo "Message: {$frame->data}\n"; $start_fd = 0; while (true) { $conn_list = $ws->connection_list($start_fd, 10); if ($conn_list === false or count($conn_list) === 0) { echo "finish\n"; break; }
<?php $serv = new swoole_websocket_server('0.0.0.0', 9501); $serv->on('Request', function ($req, $resp) { if ($req->server['request_uri'] == '/camera') { $html = file_get_contents(__DIR__ . '/camera.html'); } else { $html = file_get_contents(__DIR__ . '/index.html'); } $resp->end($html); }); $serv->on('Message', function ($serv, $frame) { $connections = $serv->connection_list(); foreach ($connections as $fd) { $info = $serv->connection_info($fd); if ($fd != $frame->fd and $info['websocket_status'] > 1) { $serv->push($fd, $frame->data); } } }); $serv->start();