gpt4 book ai didi

带有订阅的 Javascript WebSockets

转载 作者:行者123 更新时间:2023-12-05 07:20:56 24 4
gpt4 key购买 nike

我一直在探索使用 Javascript 的 WebSockets,并且我掌握了发送和接收数据等基础知识。

但是,当我检查一些连接到 websockets 数据源的真实案例时,总是有这种通过发送特定的 JSON 对象来订阅到 channel 的概念。

这背后的机制是什么,服务器端需要什么来处理此类订阅?订阅是一种发送和请求数据的奇特方式,还是这种方式还有更多内容?

最佳答案

我觉得这是一个很大的问题,我可能无法提供一个全心全意的完整答案。但我会尝试 -

首先,websocket 只不过是没有套接字close 的标准网络请求。因此,您维护的双向套接字上的输入/输出允许推送数据

通过 websocket 发送内容的两种方法是二进制和文本。因此,当您发送数据包时,您的另一端将收到一条消息。根据您的实现或库,您可能会收到一条已完成消息。

由于发送文本相当便宜,而且通常用例您会希望发送结构化格式 - 例如传输语言 JSON。您的接收者(客户端)可以简单地 JSON.parse(message) 并完成工作。

当然,您可以发送任何格式的文本 - 例如 [my content:"my custom format"] 但那是您自己的实现。

最后,websocket 连接是非常基本的 - 没有框架可以利用。 echo 或广播服务器是“对于任何传入消息,发送到所有连接的客户端” 的示例。发布者/订阅者是另一个一般概念或“ channel ”作为 websockety 术语。当用户连接到您的主服务器时,他们会提供一些凭据来验证和/或将自己标识为唯一实体。

TL:DR;

因此“订阅”更像是一个允许用户连接并分配给消息流的概念。对于许多现成的图书馆来说,这是作为免费赠品提供的。这可以通过格式化的传输文本(例如 JSON)来完成。

在服务器上,您处理套接字并构建您自己的例程协议(protocol)。这可以像带有 IDS 的套接字列表一样简单。


https://Pusher.com长期以来一直是 websocket 服务,他们提供了一些关于这个主题的很棒的文档

https://pusher.com/docs/channels

但它始终只是格式化文本或二进制流。您的服务器将处理任何复杂的逻辑。

希望对您有所帮助。

关于带有订阅的 Javascript WebSockets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57232246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com