我有一个处理连接的套接字服务器。我有一个
doHandshake
方法
function doHandshake($received_header, $client_socket_resource, $host_name, $port) {
var_dump($received_header);
// do stuf here with header
}
当我想从
javascript客户端
,它工作正常,并打印所有标题,例如
Sec-WebSocket-Key
.这是我在socket server中使用doHandShake方法的方式:
$header = socket_read($newSocket, 1024);
$chatHandler->doHandshake($header, $newSocket, HOST_NAME, PORT);
另一方面,我有一个php客户端。当我从php客户端连接时,header是我发送到服务器的字符串,而不是真正的header。以下是我的php客户端套接字:
$host = "127.0.0.1";
$port = 8090;
$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);
知道如何在php客户端发送套接字头吗??
注:
这是在中自动完成的
javascript客户端
.