【发布时间】:2016-10-11 13:37:04
【问题描述】:
我在 WebSocekt 类的 close 方法中编写了这段代码:
$msg = str_split(sprintf('%016b', $code), 8);
$msg[0] = chr(bindec($msg[0]));
$msg[1] = chr(bindec($msg[1]));
$msg = implode('', $msg).$reason;
socket_write($client, self::encode($msg, 'close'), 127);
我现在可以确定的是,我已经按照协议页面上告诉我的内容编写了它,方法 encode() 已经创建了一个关闭帧,socket_write() 没有错误地将它发送给客户端,也没有服务器和客户端报告任何错误。但是客户端什么也没收到,当使用console.log()记录onclose事件时,它报告关闭不干净,并得到一个关闭代码1006,没有原因,即使我发送了代码1000的关闭帧和一个正常关闭的原因.所以我很困惑,谁能告诉我如何发送一个关闭帧来完成这项工作。
【问题讨论】:
-
你使用的是什么 WebSocket 库?
-
我自己编写库,这就是我遇到这个问题的原因。