gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 22:34:35 26 4
gpt4 key购买 nike

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

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

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

注意。我知道 iOS、Windows 和 Google 对基于推送的通知的内置支持,但它(还)没有为基于 Web 的项目提供开箱即用的解决方案——因此我想使用 socket.io(或任何SignalR-esque 等效项)。

最佳答案

WebSocket 在 Azure 移动服务上应该没问题,因为它只是将 HTTP 连接“降级”回带框架的套接字(更像是可靠的 UDP)。但也有一些注意事项:

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

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

关于node.js - Azure 移动服务和 socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19340891/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com