最近在研究laravel-echo-server
其中在客戶端連接前, 客戶端會發(fā)送http協(xié)議的api請求sid,然后通過websocket連接到相同的地址。請問workerman能夠做到一個端口多個協(xié)議嗎?要怎么實現(xiàn)?
在這里我找到了充電樁上行通信協(xié)議的問題和文檔,但是作者只是在表示 單端口單協(xié)議 多進程多端口
可以,比如同時支持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();