ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
设置当前worker是否开启监听端口复用(socket的SO\_REUSEPORT选项)。 开启监听端口复用后允许多个无亲缘关系的进程监听相同的端口,并且由系统内核做负载均衡,决定将socket连接交给哪个进程处理,避免了惊群效应,可以提升多进程短连接应用的性能。 **注意:**此特性需要PHP版本>=7.0 ## [workerman多端口(多协议)监听](https://www.workerman.net/doc/workerman/worker/reuse-port.html#%E8%8C%83%E4%BE%8B2%EF%BC%9Aworkerman%E5%A4%9A%E7%AB%AF%E5%8F%A3(%E5%A4%9A%E5%8D%8F%E8%AE%AE)%E7%9B%91%E5%90%AC) ~~~php use Workerman\Worker; use Workerman\Connection\TcpConnection; require_once __DIR__ . '/vendor/autoload.php'; $worker = new Worker('text://0.0.0.0:2015'); $worker->count = 4; // 每个进程启动后在当前进程新增一个监听 $worker->onWorkerStart = function($worker) { $inner_worker = new Worker('http://0.0.0.0:2016'); /** * 多个进程监听同一个端口(监听套接字不是继承自父进程) * 需要开启端口复用,不然会报Address already in use错误 */ $inner_worker->reusePort = true; $inner_worker->onMessage = 'on_message'; // 执行监听 $inner_worker->listen(); }; $worker->onMessage = 'on_message'; function on_message(TcpConnection $connection, $data) { $connection->send("hello\n"); } // 运行worker Worker::runAll(); ~~~