关于websocket的TextMessage与BinaryMessage的疑惑
客户端往服务端发消息时有两个疑惑:
问:当设置BinaryMessage时,能不能写入text数据?
答:
可以写入utf8编码的文本,utf8编码后,数据就是二进制格式,传输到服务端时,服务端不做任何校验,直接会投递到你的应用层代码,此时,如何解析完全取决于你。问:当设置TextMessage时,能不能写入binary数据?
答:不能,因为当frameType是TextMessage时,服务端会校验其是否为utf8,如果不是,服务端会关闭连接。
以上是客户端往服务端发消息时的情况,反之,服务端往客户端发消息,客户端如何处理呢?
针对第一个问题,答案是一致的,但是第二个问题,却各有不同,有些websocket客户端会实现与服务端一致的逻辑,有些则不会处理,直接投递到你的应用代码。
参考:
github.com/gorilla/websocket
github.com/lesismal/nbio
本作品采用《CC 协议》,转载必须注明作者和本文链接