有关使用哪种技术进行实时通知的建议

Cor*_*ell 10 javascript html5 websocket

我有X个活动传感器连接到服务器,每次触发传感器时都会将数据插入数据库.我正在尝试做的是创建一个带有蓝色打印设备(svg)的Web界面,每当触发传感器时,除了数据库插入之外,我希望它在我的蓝图中显示某种警报.为此,我需要保持与服务器的开放连接.

我正在考虑使用Web套接字,但它可能有点过分,因为我只需要从服务器检索数据.但是每秒运行一次ajax调用听起来也不是很有效.还有其他选择吗?

谢谢

dc5*_*dc5 5

一些潜在的选择包括:

  • 网络套接字
  • Adobe® Flash® 插座
  • AJAX 长轮询
  • AJAX 多部分流
  • 永远的 iframe
  • JSONP 轮询

您最终使用的实际传输将取决于您对浏览器支持的要求以及您在服务器上使用什么技术来处理这些请求。传输选择还可能取决于您的网络拓扑 - 您需要集成什么类型​​的负载均衡器、代理等。

客户端和服务器端都有许多可用的库,其中许多库支持不止一种这些传输。

例如(不是详尽的清单):

  • 用于 nodejs 的 socket.io
    • 网络套接字
    • Adobe® Flash® 插座
    • AJAX 长轮询
    • AJAX 多部分流
    • 永远的 iframe
    • JSONP 轮询
  • 用于 asp/.net 后端的 SignalR
    • 网络套接字
    • 服务器发送的事件
    • 永远的框架
    • 长轮询
  • java后端的 氛围
    • 网络套接字
    • 服务器端事件 (SSE)
    • 长轮询
    • 永远的框架
    • JSONP

IMO - Websockets对于此类问题并不过分,并且非常适合此类应用程序。