微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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服务器发出信号以广播该消息.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐