websocket的通信握手没有问题,但是发送数据的时候需要有一个压缩,我试着将代码写成 如下压缩: /// <summary> /// <summary> 谷歌浏览器 报错WebSocket connection to “ws://192.168.1.179:8050/” failed: A server must not mask any frames that it sends to the client. |
|
10分 |
所以你需要压缩的其实是message,而不是DataFrame
|
60分 |
你可以先把字符串转换成字节数组,然后压缩,然后按Base64编码成字符串,放到DataFrame里,发送
接收到之后,再按Base64转成byte数组,然后解压,然后转回字符串 |
10分 |
websocket基本的协议,应该是不支持压缩的。
|
我试了一下改成 DataFrame dr = new DataFrame(buffer); websocket 把数据按照byte[]传入google浏览器应该是可以自动转码和识别的,我在客户端javascript中没有些任何转码代码,在不考虑压缩的时候是完全可以的。 |
|
我看到 好像有压缩的,但是就是未找到方法成功,如果基本协议不能直接压缩,怎么处理呢? |
|
20分 |
你只能压缩你自己的数据包部份。其他的不能压
|
我改成压缩自己传入部分了,我这边用MemoryStream 和 DeflateStream 来压缩将生成的byte[]传到客户端js报错 WebSocket connection to “ws://192.168.1.179:8050/” failed: Could not decode a text frame as UTF-8. |
|
按照这个思路搞定了,顺便也梳理了一下 websocket 的思路和使用过程。结贴! |