在我的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);
您有什么想法我该如何解决这个问题?
注意:它在线程外部工作。