Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP ZMQ在Windows上不工作,但在Linux上工作?_Php_Zeromq_Ratchet - Fatal编程技术网

PHP ZMQ在Windows上不工作,但在Linux上工作?

PHP ZMQ在Windows上不工作,但在Linux上工作?,php,zeromq,ratchet,Php,Zeromq,Ratchet,与ratchet捆绑的PHP ZMQ在windows上不起作用,但将在Linux上起作用。当它在linux上运行时,消息将输出到服务器控制台。相同的脚本在Windows上不起作用。它正在运行,但未接收任何消息 我已经用PHP7.2安装了XAMPP。我已将以下文件复制到如下所示的方向。()使用线程安全版本。x64和x86都有 目录:C:\xampp\php libzmq.dll libzmq.pdb 目录:C:\xampp\php\ext php_zmq.dll php_zmq.pdb 我已重新启

与ratchet捆绑的PHP ZMQ在windows上不起作用,但将在Linux上起作用。当它在linux上运行时,消息将输出到服务器控制台。相同的脚本在Windows上不起作用。它正在运行,但未接收任何消息

我已经用PHP7.2安装了XAMPP。我已将以下文件复制到如下所示的方向。()使用线程安全版本。x64和x86都有

目录:C:\xampp\php libzmq.dll libzmq.pdb

目录:C:\xampp\php\ext php_zmq.dll php_zmq.pdb

我已重新启动apache并从命令行调用php,如下所示: php push-server.php

服务器运行,但当从浏览器访问“post.php”时,会回显“Done”,但控制台中从未收到任何消息

我已禁用windows防火墙、windows UAC,并以管理员身份运行命令提示符

post.php

//这是我们的新产品
$context=new ZMQContext();
$socket=$context->getSocket(ZMQ::socket_PUSH,'PUSHER');
$socket->connect(“tcp://localhost:5555");
$socket->send(“你好世界”);
回音‘完成!’;
pusher.php

名称空间MyApp;
使用棘轮\连接接口;
使用Ratchet\Wamp\WampServerInterface;
类推送器实现WampServerInterface{
订阅上的公共函数(连接接口$conn,$topic){
回显“已订阅”。“\r\n”。$topic;
}
公共函数onUnSubscribe(连接接口$conn,$topic){
}
公共功能onOpen(连接接口$conn){
}
公共功能关闭(连接接口$conn){
}
公共函数onCall(ConnectionInterface$conn、$id、$topic、数组$params){
//在这个应用程序中,如果客户端发送数据,那是因为用户在控制台中进行了黑客攻击
$conn->callError($id,$topic,“您不允许进行调用”)->close();
}
公共函数onPublish(ConnectionInterface$conn、$topic、$event、数组$exclude、数组$qualified){
//在这个应用程序中,如果客户端发送数据,那是因为用户在控制台中进行了黑客攻击
$conn->close();
}
公共功能onError(连接接口$conn,\n异常$e){
}
}
push-server.php

require'../application/vendor/autoload.php';
require('pusher.php');
$loop=React\EventLoop\Factory::create();
$pusher=新的MyApp\pusher;
//侦听web服务器在ajax请求后进行ZeroMQ推送
$context=newreact\ZMQ\context($loop);
$pull=$context->getSocket(ZMQ::SOCKET\u pull);
$pull->bind($pull)tcp://127.0.0.1:5555'); // 绑定到127.0.0.1意味着唯一可以连接的客户端是它自己
$pull->on('message',函数($msg){
回声“你好,世界!”;
});
$pull->on('error',函数($e){
echo$e->getMessage();
});
//为需要实时更新的客户端设置我们的WebSocket服务器
$webSock=new React\Socket\Server('0.0.0.0:8080',$loop);//绑定到0.0.0.0意味着远程设备可以连接
$webServer=新棘轮\Server\IoServer(
新棘轮\Http\HttpServer(
新建Ratchet\WebSocket\WsServer(
新棘轮\Wamp\WampServer(
$pusher
)
)
),
$webSock
);
$loop->run();
``
预期的结果是在Windows上的服务器控制台中显示“Hello World!”,但从未显示任何内容。
相同的脚本在Centos 7上使用相同版本的PHP和ZMQ。

奇怪的是,这才刚刚开始起作用。我所做的就是禁用SSL。我和你一样困惑。

奇怪的是,这才刚刚开始起作用。我所做的就是禁用SSL。我和你一样困惑。

为了节省别人的时间。我也尝试过使用SSL。不走运,为了节省时间。我也尝试过更换端口。不走运,为了节省时间。我也尝试过使用SSL。不走运,为了节省时间。我也尝试过更换端口。不走运。