websocket - 如何将 SockJS 与另一个 Web 框架集成

标签 websocket web2py web-frameworks server-push reverse-ajax

作为 Socket.io 的替代品,有 SockJS(https://github.com/sockjs/sockjs-client),它似乎比 Socket.io 维护得更好,更稳定。

这个问题是关于将 SockJS 与 Web 框架一起使用的架构的概念性理解,例如,用于构建聊天应用程序

我目前的理解是,您需要 SockJS 客户端和 SocketJS 服务器(在我的情况下,我打算使用 SockJS-Tornado ( https://github.com/MrJoes/sockjs-tornado ))才能进行 websockets 风格的通信。

但是 SockJS(SockJS-client + SockJS-Tornado)如何与一个 Web 框架结合在一起,完成其余的工作(例如,为页面提供服务,向/从数据库写入/读取等)。例如,SockJS-Tornado 组件将如何与框架的 Web 服务器通信?特别是,使用 web2py(一个 Python Web 框架)执行此操作的任何方向都受到高度赞赏。

最佳答案

你是对的,对于 SockJS,你需要一个支持 sockjs 的服务器和一个浏览器内的 javascript 客户端库。

通常有两种集成模式,假设您要使用 sockjs-tornado:

  • 您可以从 Tornado 获得所有站点。这样,将 sockjs-tornado 连接到某个路径,例如“http://mysite.com/sockjs”。在这种情况下,您的网站和 sockjs 都将从 mysite.com 域提供服务。
  • 您可以将您的网站保留在它所编写的任何语言/框架中,并将 sockjs-server 作为另一个组件添加到不同的域下,例如。 'http://sockjs.mysite.com/sockjs'。

  • 此外,您可以使用此的任何变体 - 例如:在内部拥有两台服务器,但通过使用智能负载平衡器(如 haproxy)将它们作为一个域公开。

    关于websocket - 如何将 SockJS 与另一个 Web 框架集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10436371/

    相关文章:

    ruby - 如何禁用 espresso 框架中某些操作的布局渲染?

    tcp - 是否可以通过 websockets 或其他协议(protocol)传输 TCP 连接?

    python - 如何在浏览器和应用程序之间创建通信

    python - Web2py - 显示与 id 不同的引用字段

    python - web2py - 使用两个字段值的组合测试行

    python - 如何验证列表 :string fields with web2py?

    javascript - Spring WebSocket 返回未记录的 403

    ios - 如何在我的 iOS 应用程序中使用 CFStream 将客户端 SSL 证书发送到服务器?

    html - html 模板中的内容被模板的文件位置而不是所需的文本替换

    web - Pharo Smalltalk 的类似 Sinatra 的网络框架