主要用C开发服务器端(websocket):握手,拆包都正常,但发送给浏览器的老是自动断开,一开始以为是粘包问题,结果最后用最简单是例子(只处理握手和发包,接的包不处理)也是如此,
unsigned char frame[] = {0x81,0x01,0x68}; // h
send(connfd, frame, strlen(frame),0);
这个数据帧够简单了吧?(握手,读取浏览器的帧正常)
但结果确实这样:
A server must not mask any frames that it sends to the client.
但当我换成PHP时却一切正常,主要代码如下功能和上面的一样:
$data = pack('H*', implode('',array('81', '01', '68')));
socket_send($conn, $data, strlen($data), 0);
使用sokit模拟客户端收到的包内容一模一样,如下:
12:45:07 DAT---> <3> ..h
[81 01 68]
无语了。。。。,