Django+Vuejs 集成 WebSocket 实现服务器推送消息架构实践

到目前为止,我们使用 Django+Vuejs 实现的各种跨平台应用(包括很大一部分的 Cordova Hybrid Apps)实践已有相当一段时间了,有些架构上的限制也逐渐显露出来,比较重要的一点就是在一些消息通知的层面仍然采用低效的 http 轮询的模式,我们希望使用 WebSocket,一步到位将这种需求实现到位。

WebSocket 的原理自不用多说,但是在我们的架构下面,我理想的设计应该是这样的:每一个登录的用户都维护有一个 Websocket 连接(初步假设每个用户只能单点登录,同一时间只有一个 Websocket 连接),然后这个连接的凭据我们将其存放在数据库 model 中,服务器端可以随时通过某个用户,通过 websocket 发送一条任意格式的消息(JSON)给指定的用户,然后我们通过一个业务应用层级的规则去路由以及处理消息,就可以实现极低消耗的服务器推功能,大致如此。

并且,这个额外的功能应该不影响原有的 HTTP 架构,服务还是能够照常按照原来的模式接受 HTTP 请求。还有,服务器接受客户端的 websocket 消息处理上下文,也应当能够访问模型层。

主要参考这篇很棒的技术文章:https://blog.heroku.com/in_deep_with_django_channels_the_future_of_real_time_apps_in_django


【转载请附】愿以此功德,回向 >>

原文链接:http://www.huangwenchao.com.cn/2017/06/django-websocket-push-vue.html【Django+Vuejs 集成 WebSocket 实现服务器推送消息架构实践】

发表评论

电子邮件地址不会被公开。 必填项已用*标注