ElephantIO内部线程不起作用

时间:2015-12-04 05:49:42

标签: php multithreading socket.io

在我的php 5.6上安装了pthread,我无法在一个帖子中运行ElephantIO。

<?php

require( __DIR__ . '/vendor/autoload.php');

use ElephantIO\Client;
use ElephantIO\Engine\SocketIO\Version1X;

class workerThread extends Thread {

    public function __construct($i) {
        $this->i = $i;
    }

    public function run() {

        $client = new Client(new Version1X('http://localhost:3000'));
        $client->initialize();

        while (true) {
            $client->emit('chat message', ["[$i] Now is" . microtime()]);
            sleep(5);
        }

        $client->close();
    }

}

for ($i = 0; $i < 10; $i++) {
    $workers[$i] = new workerThread("User $i");
    $workers[$i]->start();
}

echo "Done";

即使我添加ini_set("display_errors", 1); error_reporting(E_ALL);,错误仍然不会显示在线程中发生(我在run()的开头和脚本的开头添加了它。

然而,通过回声,我意识到错误发生在Version1X.php的第98行,即:

$payload = new Encoder($code . $message, Encoder::OPCODE_TEXT, true);

您有什么想法我该如何解决这个问题?

注意:它在线程外部工作。

0 个答案:

没有答案