国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

phpsocketIO中是否可以同時(shí)打開2個(gè)端口?

takumin
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è)問題?
有哪位是否了解,還有沒有其它更好的解決辦法?

希望能得到大家的幫助,謝謝!

3728 3 0
3個(gè)回答

walkor 打賞

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();

  • takumin 2018-06-21

    你好,我基本上是按照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è)。

  • walkor 2018-06-22

    把代碼打包發(fā)上來吧

  • takumin 2018-06-22

    示例代碼已發(fā)上來,麻煩幫忙看一下,謝謝!

takumin

我的demo代碼,請(qǐng)查看,謝謝!

  • 暫無評(píng)論
walkor 打賞

這里測(cè)試正常的,兩個(gè)端口都在啟動(dòng)界面上有顯示,并且都可以連

  • takumin 2018-06-22

    下午裝了一個(gè)LINUX系統(tǒng)試了一下,在LINUX上可以同時(shí)啟動(dòng)2個(gè)端口,在WIN10系統(tǒng)上不行。謝謝!

  • walkor 2018-06-22

    windows系統(tǒng)不支持在一個(gè)文件中載入多個(gè)監(jiān)聽,workerman手冊(cè)有寫

年代過于久遠(yuǎn),無法發(fā)表回答
??