最近在研究laravel-echo-server 其中在客户端连接前, 客户端会发送http协议的api请求sid,然后通过websocket连接到相同的地址。请问workerman能够做到一个端口多个协议吗?要怎么实现?
laravel-echo-server
在这里我找到了充电桩上行通信协议的问题和文档,但是作者只是在表示 单端口单协议 多进程多端口
可以,比如同时支持http和websocket代码类似
<?php require_once __DIR__ . '/vendor/autoload.php'; use Workerman\Connection\TcpConnection; use Workerman\Protocols\Http\Request; use Workerman\Worker; use Workerman\Protocols\Websocket; $worker = new Worker('http://0.0.0.0:1234'); $worker->onMessage = function (TcpConnection $connection, $request) { if ($request instanceof Request) { if ($request->header('upgrade') == 'websocket') { $connection->protocol = Websocket::class; Websocket::input($request, $connection); return; } $connection->send('http'); return; } $connection->send('websocket'); }; Worker::runAll();
感谢感谢 我刚在csdn找到nodejs版本想着怎么改来着 作者牛逼!
请求代理?
使用nginx应该更方便
可以,比如同时支持http和websocket代码类似
感谢感谢 我刚在csdn找到nodejs版本想着怎么改来着 作者牛逼!
请求代理?
使用nginx应该更方便