require_once __DIR__ . '/socket1.php';
require_once __DIR__ . '/socket2.php';
如题,根据demo中的方式(demo中一个是打开socket,一个是打开webservice),
我在socket1和socket2两个文件中各加入了一行代码如下:
socket1文件 $io1 = new SocketIO(3120);
socket2文件 $io2 = new SocketIO(3121);
但是在运行之后发现,只有3120端口被打开了。
如果屏蔽$io1的话,则3121端口单独可以被打开。
请问,是我的代码写法问题,还是本来就不支持这么做?
我原本想通过of命名空间的方法来区分2个不同功能的socket请求,但早上在论坛的提问中已经得到回复phpsocketio不支持of命名空间。因此我想到打开2个端口分别处理不同的请求,但又遇到了上述这个问题?
有哪位是否了解,还有没有其它更好的解决办法?
希望能得到大家的帮助,谢谢!
socket1.php 中如果提前调用了 Worker::runAll();,那么socket2.php文件中的代码将不会被执行。
如果是
$io1 = new SocketIO(3120);
Worker::runAll();
// Worker::runAll();下面的代码将不会被执行
$io2 = new SocketIO(3121);
正确流程是
$io1 = new SocketIO(3120);
$io2 = new SocketIO(3121);
Worker::runAll();
你好,我基本上是按照demo中的结构来写的。有一个start.php文件进行加载如:
define('GLOBAL_START', true);
require_once __DIR__ . '/socket1.php';
require_once __DIR__ . '/socket2.php';
Worker::runAll();
并且在各socket*.php 中加入了判断代码
if (!defined('GLOBAL_START')) {
Worker::runAll();
}
但是这样仍然只执行第一个。
把代码打包发上来吧
示例代码已发上来,麻烦帮忙看一下,谢谢!
我的demo代码,请查看,谢谢!
这里测试正常的,两个端口都在启动界面上有显示,并且都可以连
下午装了一个LINUX系统试了一下,在LINUX上可以同时启动2个端口,在WIN10系统上不行。谢谢!
windows系统不支持在一个文件中载入多个监听,workerman手册有写