我正在使用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);
当我运行此代码时没有任何反应......有任何帮助吗?
答案 0 :(得分:2)
您可能不是在为websockets而是在推送服务器上寻找PHP客户端。 http://socketo.me/docs/push
在socketo.me的网站上,一切都有关于如何进行设置的说明。 为了简要总结一下:
pushserver是应用程序逻辑和websocket本身之间的层。 这将使您能够向pushserver发送请求,然后将请求发送到websocket的客户端。
如果您需要进一步解释,请告诉我。
答案 1 :(得分:0)
这来晚了,但对于希望澄清此概念的人可能会有所帮助。
socket_create()
和 socket_connect()
是 PHP 核心函数,编写用于 TCP 和 UDP 协议,但不适用于 webSocket 连接 (ws:/ /uri:端口)。
对于这个问题的项目,最好使用@mitchken提到的现成的websocket客户端包(ratchet/pawl、amphp/websocket-client等)。
我个人使用过 amphp 并且它工作得非常好,特别是如果您需要通过使用 PHP websocket 客户端发送消息来更新特定用户/组的 UI 以响应后端发生的事件/通知并在 websocket 服务器适配器类的 onMessage() 事件中将消息重定向到目标用户。