您的位置:首页 > 移动开发

websocket手机端无法通信

2016-07-27 16:01 281 查看
之前做一个项目需要手机与内网机器通信

由于手机端由h5完成,所以采用websocket的方式

在电脑上调试时一切正常

用手机访问时却在握手时中断连接,握手不成功

后来研究了一下握手协议

如下

("HTTP/1.1 101 Switching Protocols\r\n");

("Upgrade: websocket\r\n");

("Connection: Upgrade\r\n");

("Server:beetle websocket server\r\n");

("Access-Control-Allow-Credentials:true\r\n");

("Accept-Encoding: gzip, deflate, sdch\r\n");

("Accept-Language: zh-CN,zh;q=0.8\r\n");

("Access-Control-Allow-Headers:content-type\r\n");

("Sec-WebSocket-Accept:" + key + "\r\n");

在这里也没有发现问题...

为了实现一个猜测,在最后一条加了一个\r

最后变成 

("Sec-WebSocket-Accept:" + key + "\r\n\r");

然后就握手成功,通信OK

问题到这里就解决了。。。。 个人猜测可能是手机端兼容上的问题。  既然要求在最后一定要加\r\n,那也许是手机端还需要有一个结束标识?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: