require_once __DIR__ . '/socket1.php';
require_once __DIR__ . '/socket2.php';
如題,根據(jù)demo中的方式(demo中一個(gè)是打開socket,一個(gè)是打開webservice),
我在socket1和socket2兩個(gè)文件中各加入了一行代碼如下:
socket1文件 $io1 = new SocketIO(3120);
socket2文件 $io2 = new SocketIO(3121);
但是在運(yùn)行之后發(fā)現(xiàn),只有3120端口被打開了。
如果屏蔽$io1的話,則3121端口單獨(dú)可以被打開。
請(qǐng)問,是我的代碼寫法問題,還是本來就不支持這么做?
我原本想通過of命名空間的方法來區(qū)分2個(gè)不同功能的socket請(qǐng)求,但早上在論壇的提問中已經(jīng)得到回復(fù)phpsocketio不支持of命名空間。因此我想到打開2個(gè)端口分別處理不同的請(qǐng)求,但又遇到了上述這個(gè)問題?
有哪位是否了解,還有沒有其它更好的解決辦法?
希望能得到大家的幫助,謝謝!
socket1.php 中如果提前調(diào)用了 Worker::runAll();,那么socket2.php文件中的代碼將不會(huì)被執(zhí)行。
如果是
$io1 = new SocketIO(3120);
Worker::runAll();
// Worker::runAll();下面的代碼將不會(huì)被執(zhí)行
$io2 = new SocketIO(3121);
正確流程是
$io1 = new SocketIO(3120);
$io2 = new SocketIO(3121);
Worker::runAll();
你好,我基本上是按照demo中的結(jié)構(gòu)來寫的。有一個(gè)start.php文件進(jìn)行加載如:
define('GLOBAL_START', true);
require_once __DIR__ . '/socket1.php';
require_once __DIR__ . '/socket2.php';
Worker::runAll();
并且在各socket*.php 中加入了判斷代碼
if (!defined('GLOBAL_START')) {
Worker::runAll();
}
但是這樣仍然只執(zhí)行第一個(gè)。