window 系统下 workerman 在同一个运行窗口中开启多个 websocket 服务
🎈 开启多个 ws 服务失败
正常情况下,如果你想开启多个
websocket
服务的话只要在一个文件中,输入
new Worker
两次,监听不同端口,使用Worker::runAll()
命令即可但是你会发现在在
window
中无法在一个文件中同时监听两个websocket
服务,其他系统比如 Linux 是没有问题的会报
multi workers init in one php file are not support
错误,意思window
中禁止在同一个文件中开启多个websocket
服务
🎈 开启服务失败解决办法
windows
版本的workerman
不支持在同一个文件中实例化多个Worker
。因此
windows
版本的workerman
需要将多个Worker
实例初始化放在不同的文件中才可以解决比如我们定义两个文件,一个
start_http.php
,另一个是start_websocket.php
,在文件中分别加入以下代码,监听不同端口,然后使用php 文件名
命令启动这两个文件即可
🎈 同一个窗口中运行
上面虽然可以解决运行多个
websocket
实例,但是你会发现有几个文件,就会有几个运行窗口如果开启的服务更多,窗口也会更多,那么如何在同一个窗口中运行启动多个服务呢
那么如果要解决这个问题,我们就可以创建一个
init.bat
文件,然后在文件中加入以下代码,然后双击运行即可实现在同一个窗口中启动多个服务/d:表示切换目录
/b:表示不打开新窗口,在当前窗口继续执行
版权声明: 本文为 InfoQ 作者【极客飞兔】的原创文章。
原文链接:【http://xie.infoq.cn/article/2815374123c1f30bb3cdfc49e】。未经作者许可,禁止转载。
评论