作为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客户端SockJS-Tornado)如何与执行其余工作的Web框架结合在一起(例如,提供页面,向/从db写入/读取等).例如,SockJS-Tornado组件如何与框架的Web服务器通信?特别是,高度赞赏使用web2py(python web框架)执行此操作的任何方向.
解决方法
你是对的,对于SockJS,你需要一个支持sockjs的服务器和一个浏览器内的javascript客户端库.
通常有两种集成模式,假设你想使用sockjs-tornado:
>您可以从Tornado获得所有网站服务.有了它,将sockjs-tornado挂钩到一些路径,例如’http://mysite.com/sockjs’.在这种情况下,您的网站和sockjs将从mysite.com域提供.
>您可以将您的网站保留在其编写的任何语言/框架中,并在不同的域下添加sockjs-serveras另一个组件,例如. ‘http://sockjs.mysite.com/sockjs’.
此外,您可以使用此任何变体 – 例如:内部有两个服务器,但使用智能loadblancer(如haproxy)将它们作为一个域公开.