如何实现一个即时的消息系统

举例:我们三个人参加一个对话,每次这个对话进行更新的时候如何通知其他用户?语言环境是python,数据库是redis。用的是Flask框架。

阅读 15.6k
9 个回答

使用:socket.io

Python的话可以使用Tornado,用Long Polling的方式做。如果要支持Comet的话,可以使用CometD。具体用法google吧。

构建一个Realtime系统是很容易的,有很多技术可以选择,要选择一个合适你的,那么你需要充分了解你的业务和客户,你的问题缺少这些东西,所以我只能先简单的罗列出来。

系统的重点是及时消息(IM)的话,你可以采用XMPP这类标准的解决方案。
如果只是很少一部分的功能,那么你可以根据你的业务特点来选WebSocket、FlashScoket、XHR Polling、Long Polling、Http Streaming等

新手上路,请多包涵

语言不重要 我认为原理更重要 楼上各位
一般是如此两种方式
1.推送方式
2.轮询方式

如果语言技术支持的话 个人建议使用推送方式

redis有PUB/SUB功能啊…

更好的扩展性可以采用 socket.io + ZeroMQ 。

我想MQTT可以是一个被关注的标准,在私有而小的信讯系统中,MQTT可以很容易的加进系统中而对大型的MQ来说有对应的接口。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题