如何以编程方式(使用PHP)调用WebSocket?

Nig*_*olf 6 php sockets websocket phpwebsocket

我有一种情况,我需要根据另一个浏览器的输入来更新一个浏览器窗口。现在,我正在使用WebSockets,并且效果很好。

现在,我想使用PHP而不是浏览器将数据发送到WebSocket(因此,使用PHP代码代替ws://)。换句话说,我想使用PHP而不是JavaScript模拟WebSocket.send()调用。

我有以下似乎无效的代码(onmessage没有被调用):

if ( 
        function_exists('socket_create') AND
        $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP) AND
        $sock_data = socket_connect($sock, "127.0.0.1", 12345)
    ) {  
        $msg = "hello world";
        $sock_data = socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1); //Set 
        $sock_data = socket_write($sock, $msg, strlen($msg)); //Send data
        socket_close($sock); //Close socket
    } 
Run Code Online (Sandbox Code Playgroud)

Aat*_*tch -1

WebSocket 不仅仅将原始数据发送到 TCP 套接字,还有更多功能。

好的,首先,您使用 UDP 套接字,而 WebSocket 使用 TCP。WebSockets 是一个完整的通信协议,类似于 HTTP,因此您需要遵循该协议,您需要首先执行握手步骤,并且需要将标头添加到所有通信中。这并不难,但我不打算在这里详细介绍。

这里有两种选择,在 php 中实现 WebSockets 协议,或者使用像这样的预构建库: http: //code.google.com/p/phpwebsocket/

我并不是粗鲁或刻薄,但将来,请尝试快速谷歌搜索。我链接的那个库是在谷歌搜索“PHP WebSockets”后找到的。