PHP套接字同时接收许多数据

时间:2014-10-30 15:39:58

标签: javascript php sockets

我正在使用PHP和WebSocket(JavaScript)在客户端和服务器之间进行通信。过程是:      - 服务器启动套接字,客户端连接到。      - 当服务器有新数据时,它会通知所有客户端。      - 然后客户端反馈收到通知,服务器接收此信息,不再发送该信息。如果客户端在10秒后没有响应,则将再次发送服务器。

案例服务器一次发送给客户端服务器很多消息,客户端应答服务器不断服务器无法读取数据。 或者当许多客户端同时回复时,服务器既不能读取数据。

Sever使用'socket_recv'函数从客户端接收数据。 问题是如何在服务器中获取消息。

详细代码:

// Create socket and start listen
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($socket, 0, 1155);
socket_listen($socket);

while (true) {
    // Check for new data and sent to all clients
    ..........
    ..........
    // End of test data and sent

    // Check if there are new data from the client
    $changed = $clients;
    socket_select($changed, $ null, $ null, 0, 10);

    // Run through the client
    foreach ($changed as $changed_socket) {
        // Read the information sent to the client
        while (socket_recv($changed_socket, $buf, 1024, 0)> = 1)
        {
            // Use of client information check up and remove the message was the reply of the client
        }
    }

    sleep (1); 

}

0 个答案:

没有答案