关于websocket的TextMessage与BinaryMessage的疑惑

客户端往服务端发消息时有两个疑惑:

  1. 问:当设置BinaryMessage时,能不能写入text数据?
    答:
    可以写入utf8编码的文本,utf8编码后,数据就是二进制格式,传输到服务端时,服务端不做任何校验,直接会投递到你的应用层代码,此时,如何解析完全取决于你。

  2. 问:当设置TextMessage时,能不能写入binary数据?
    答:不能,因为当frameType是TextMessage时,服务端会校验其是否为utf8,如果不是,服务端会关闭连接。

以上是客户端往服务端发消息时的情况,反之,服务端往客户端发消息,客户端如何处理呢?

针对第一个问题,答案是一致的,但是第二个问题,却各有不同,有些websocket客户端会实现与服务端一致的逻辑,有些则不会处理,直接投递到你的应用代码。

参考:
github.com/gorilla/websocket
github.com/lesismal/nbio

本作品采用《CC 协议》,转载必须注明作者和本文链接
梦想星辰大海
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!