node.js – Azure移动服务和socket.io

我正在尝试创建一个 HTML5 / JS应用程序,并为我的后端使用Azure移动服务.

基于ScottGu’s post,他演示了源代码控制和npm模块支持,我想知道是否可以使用socket.io来启用实时通知和WebSockets的使用.

我可以看到一个人如何能够引入模块并为每个特定请求使用它(例如,当客户端发送到资源时,添加一个钩子来向所有客户端广播资源的创建)但我不确定如何设置并共享socket.io对象.

NB.我知道iOS,Windows和Google基于推送通知的内置支持,但它(尚未)为基于Web的项目提供现成的解决方案 – 因此想要使用socket.io(或任何SignalR-esque等价物).

解决方法

WebSocket在Azure移动服务上应该没问题,因为它只是将HTTP连接“降级”回到带有成帧的Socket(更像是可靠的UDP).但是有一些警告:

>如果您使用的是Socket.IO,则浏览器/代理不支持WebSocket将认回退到XHR.但是XHR上的Socket.IO需要大量的URL端点,并且在Azure移动服务上会失败. Socket.IO协议规范的详细信息在https://github.com/learnboost/socket.io-spec
>您需要使用Redis(redis.io)来支持Socket.IO上的服务器场,这需要Linux机箱.他们目前只在Windows平台上进行实验性构建

我宁愿为Socket.IO服务器设置一组不同的机器,因此它不会在不支持WebSocket的浏览器/代理上失败.然后当有人在Azure移动服务上POST到API时,API会将消息排队到消息队列,并向所有Socket.IO服务器发出信号以广播该消息.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...