用于发送数据的PHP Ratchet套接字客户端

时间:2016-09-06 10:18:40

标签: php sockets ratchet

我正在使用PHP Ratchet Socket服务器,我想通过php客户端将数据发送到此套接字服务器。我的套接字服务器与HTML 5 Web套接字一起运行良好,但php客户端无法运行。这是我的代码

$host    = "localhost";
$port    = 9000;
$message = "Hello Server";
echo "Message To server :".$message;
// create socket
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
// connect to server
$result = socket_connect($socket, $host, $port) or die("Could not connect to server\n");  
// send string to server
socket_write($socket, $message, strlen($message)) or die("Could not send data to server\n");
// get server response
$result = socket_read ($socket, 1024) or die("Could not read server response\n");
echo "Reply From Server  :".$result;
// close socket
socket_close($socket);

当我运行此代码时没有任何反应......有任何帮助吗?

2 个答案:

答案 0 :(得分:2)

您可能不是在为websockets而是在推送服务器上寻找PHP客户端。 http://socketo.me/docs/push

在socketo.me的网站上,一切都有关于如何进行设置的说明。 为了简要总结一下:

pushserver是应用程序逻辑和websocket本身之间的层。 这将使您能够向pushserver发送请求,然后将请求发送到websocket的客户端。

如果您需要进一步解释,请告诉我。

答案 1 :(得分:0)

这来晚了,但对于希望澄清此概念的人可能会有所帮助。

socket_create()socket_connect() 是 PHP 核心函数,编写用于 TCPUDP 协议,但不适用于 webSocket 连接 (ws:/ /uri:端口)。

对于这个问题的项目,最好使用@mitchken提到的现成的websocket客户端包(ratchet/pawl、amphp/websocket-client等)。

我个人使用过 amphp 并且它工作得非常好,特别是如果您需要通过使用 PHP websocket 客户端发送消息来更新特定用户/组的 UI 以响应后端发生的事件/通知并在 websocket 服务器适配器类的 onMessage() 事件中将消息重定向到目标用户。