CI3怎么实现服务端消息推送?

最近项目需要使用到服务端消息同步到移动端,有什么好的解决方案呢?

我自己首先想到的是两种解决方案:

第一种:ajax轮询(显然不是很好的一种方法,因为服务端消息是个未知信息,如果一直保持的轮询的话,即使间隔几秒,移动端没有轮询的结束操作,就像是一个没有终止操作的无限循环)

第二种:使用websocket,在业务需要实时更新的地方建立一个长连接,google了很多资料,网上很多人建议使用Ratchet,那么问题是,有人使用过这个工具库么?它跟国内的workman有什么异同点呢??该如何选择这两个工具。。。

对了,重要的一点忘了,现在项目是基于CI3开发的,所以还要考虑到和CI3的兼容性。

下面是我在搜集资料中的一些关键内容:
http://stackoverflow.com/questions/34389...
http://socketo.me/
http://forum.codeigniter.com/thread-6340...

阅读 4.9k
3 个回答

实时双向通信肯定是用 Websocket,不过我不建议用 PHP 做 websocket 的服务端,建议用 nodejs

另外,如果只是服务器推送,浏览器端可以用 EventSource,这个也是一个 HTML5 标准。

服务端消息同步到移动端

同步是双向的,从你的描述中没有看到需要双向同步。

可以试试第三方推送:比如个推、JPush等。

如果是双向的,可以使用 websocket。

为何不考虑异步推送? 服务器端一旦有新消息就给移动的主动推送,移动端有接收消息接口就可以了

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