Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有PHP7.2和Apache:socket\u读取格式的简单Websocket服务器_Php_Apache_Websocket - Fatal编程技术网

带有PHP7.2和Apache:socket\u读取格式的简单Websocket服务器

带有PHP7.2和Apache:socket\u读取格式的简单Websocket服务器,php,apache,websocket,Php,Apache,Websocket,大家早上好 我似乎有一个让我发疯的问题,因为我完全不知道去哪里搜索 为了获得使用Websocket的经验,我想用PHP和Apache设置一个Websocket服务器。通过结合以下解决方案: 及 我能够得到一个正常工作的echo服务器。这意味着我可以从浏览器发送一条消息,服务器用此消息进行应答。下面是代码片段 do { if (false === ($buf = socket_read($client,2048))) { echo "socket_read() fehlgeschlage

大家早上好

我似乎有一个让我发疯的问题,因为我完全不知道去哪里搜索

为了获得使用Websocket的经验,我想用PHP和Apache设置一个Websocket服务器。通过结合以下解决方案:

我能够得到一个正常工作的echo服务器。这意味着我可以从浏览器发送一条消息,服务器用此消息进行应答。下面是代码片段

do {
if (false === ($buf = socket_read($client,2048))) {
   echo "socket_read() fehlgeschlagen: Grund: " .  socket_strerror(socket_last_error($client)) . "\n";
   break 2;
}
echo $buf; // <--- this line shows "crypted" text
socket_write ($client, $buf, strlen ($buf));
} while (true);
但是没有成功。你能帮我吗

更新:

睡了一个好觉后,我找到了正确的问题,然后很快就找到了答案:

解释的起点是:

解码示例:

以及用于编码/解码的代码示例:

//$talkback = "PHP: Sie haben '$buf' eingegeben.\n";
//var_dump(mb_convert_encoding($buf,"UTF-8"));
//$unpacked = unpack('Clength',socket_read($client,1));
//var_export($unpacked);
//$msg = socket_read($client, $unpacked['length']);
//echo implode(array_map("chr", $msg));