如何解决使用 WebSocket 时,为什么一开始不从 HTTP 标头中获取频道信息
最近我将 "github.com/gorilla/websocket"
作为我的项目的底层 websocket 实现和 gin web 框架。
我在谷歌上搜索了很多例子,发现很多人在他们的 websocket 通道中使用了握手,例如他们让客户端在连接升级为web socket后注册通道,然后从注册请求中获取客户端的身份信息。
我的问题是:
在服务端,服务端可以从 HTTP Header 中获取注册信息,比如 userId、userName 等(在连接升级到 websocket 之前),唯一要做的就是让客户端把身份放入 HTTP标题。为什么人们不这样做,而是使用更麻烦的握手?
更新
客户端可以打开很多频道,所以我们必须注册每个频道来跟踪它们的使用情况。并且因为我们将使用通道发送多种类型的消息,并且它们通过正文中的 cmd 字段进行区分,所以虽然我们能够从头信息中获取 id 信息,但我们仍然需要从 websocket 数据中获取所有的通道使用信息。除初次登记外的其他通信。为了保持所有消息之间的一致性,我们通过 websocket 数据而不是 http 标头来注册通道。是这个原因吗??
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。