这将取决于发送消息的频率以及您是否需要实时处理它们。如果是这种情况,我会考虑实现 HTML 5 Web Sockets。
这是一篇可以帮助您入门的好文章,如果您将其阅读到最后,您会发现还有一个解决跨浏览器问题的解决方案(使用socket.io库),它可以回退到长轮询和其他技术来实现你想要什么。
如果您不需要实时处理消息并且可以让您的应用程序等待一段时间以根据已经存储在数据库等存储库中的消息执行某些操作,我会使用javascript
网络工作者使用 asetInterval
调用 REST 服务检查这些消息。这是一篇与此相关的好文章。
使用 web worker 的原因是他们在检查新消息时不会阻塞 UI,因此可用性会更好。
这是一个 web worker 的小例子:
使用网络工作者
var worker = new Worker("http://mydomain.com/worker.js");
worker.onmessage = function(event) {
//new message received, do something in the UI
}
worker.postMessage("start");
网络工作者 (worker.js)
this.onmessage = function(event) {
postMessage("worker started");
}
//Period of time to check for the messages
setInterval(function() { getNewMessage() }, 5000);
function getNewMessage() {
//Call your REST service here and respond back to the main js thread if a new
//message is received
postMessage("New message received!");
}
希望这可以帮助