我应该使用 Web Sockets 吗?

Posted

技术标签:

【中文标题】我应该使用 Web Sockets 吗?【英文标题】:Should I be using Web Sockets? 【发布时间】:2021-07-16 16:15:09 【问题描述】:

首先抱歉,这更像是一个设计和架构问题,想就如何解决我的问题获得一些意见,我知道有些人不会喜欢,但我不知道在哪里问这个问题。

因此,我正在构建一种设备,人们可以在家中使用并连接到他们的网络。我希望这台设备能够打电话回家(在这种情况下与我的服务器对话,例如 API 服务器),然后让用户能够管理该设备,并且该设备能够将接近实时的数据发送回我的 API 服务器。

考虑到普通的家庭网络,认为设备会被分配公共 IP 或放在 DMZ 上是很愚蠢的,因此我无法让我的 API 服务器调用设备,但设备可以调用 API服务器。

这对 WebSocket 来说是一个很好的例子吗?任何人都看过使用 Ruby on Rails 6 完成的 WebSockets,或者可以为我举一个很好的例子吗?

【问题讨论】:

【参考方案1】:

Action cable 教程可以作为一个起点,我建议你做一个最小的实现,看看它是如何进行的。从架构的角度来看,它是您想要做的事情的有效解决方案。

【讨论】:

以上是关于我应该使用 Web Sockets 吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 C/C++ 中使用 libevent 实现 Web Sockets API 的任何尝试?

flask使用websocket

WSACancelBlockingCall 异常

用于双向消息流的 HTTP/2 与 web-sockets

为啥 Web Sockets 不使用 SOAP?

使用 websockets 时,我应该为每个不同的任务打开一个新的 websocket 连接吗?还是我应该在一个连接中完成所有事情?