我有 X 数量的事件传感器连接到服务器,每次触发传感器时都会将数据插入数据库。我想做的是创建一个带有设施蓝图 (svg) 的 Web 界面,每当触发传感器时,除了数据库插入之外,我希望它在我的蓝图中显示某种警报。为此,我认为我需要与服务器保持开放连接。
我正在考虑使用网络套接字,但它可能有点矫枉过正,因为我只需要从服务器检索数据。但是每秒运行一次 ajax 调用听起来也不是很有效。还有其他选择吗?
谢谢
最佳答案
一些可能的选择包括:
- WebSocket
- Adobe® Flash® 套接字
- AJAX 长轮询
- AJAX 多部分流
- 永远的 iframe
- JSONP 轮询
您最终使用哪种实际传输取决于您对浏览器支持的要求以及您在服务器上使用什么技术来处理这些请求。传输选择还可能取决于您的网络拓扑 - 您需要集成哪些类型的负载均衡器、代理等。
客户端和服务器端都有许多可用的库,其中许多库支持不止一种传输。
例如(并非详尽列表):
- socket.io对于节点
- WebSocket
- Adobe® Flash® 套接字
- AJAX 长轮询
- AJAX 多部分流
- 永远的 iframe
- JSONP 轮询
- SignalR对于 asp/.net 后端
- WebSockets
- 服务器发送的事件
- 永远的框架
- 长轮询
- Atmosphere对于 Java 后端
- WebSockets
- 服务器端事件 (SSE)
- 长轮询
- 永远的框架
- JSONP
IMO - Websockets NOT 对这类问题来说是矫枉过正的,并且很适合这种类型的应用程序。
关于javascript - 关于使用哪种技术进行实时通知的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17968272/