Home > Article > Backend Development > CI3怎么实现服务端消息推送?
第一种:ajax轮询(显然不是很好的一种方法,因为服务端消息是个未知信息,如果一直保持的轮询的话,即使间隔几秒,移动端没有轮询的结束操作,就像是一个没有终止操作的无限循环)
第二种:使用websocket,在业务需要实时更新的地方建立一个长连接,google了很多资料,网上很多人建议使用Ratchet,那么问题是,有人使用过这个工具库么?它跟国内的workman有什么异同点呢??该如何选择这两个工具。。。
对了,重要的一点忘了,现在项目是基于CI3开发的,所以还要考虑到和CI3的兼容性。
下面是我在搜集资料中的一些关键内容:
http://stackoverflow.com/questions/34389...
http://socketo.me/
http://forum.codeigniter.com/thread-6340...
第一种:ajax轮询(显然不是很好的一种方法,因为服务端消息是个未知信息,如果一直保持的轮询的话,即使间隔几秒,移动端没有轮询的结束操作,就像是一个没有终止操作的无限循环)
第二种:使用websocket,在业务需要实时更新的地方建立一个长连接,google了很多资料,网上很多人建议使用Ratchet,那么问题是,有人使用过这个工具库么?它跟国内的workman有什么异同点呢??该如何选择这两个工具。。。
对了,重要的一点忘了,现在项目是基于CI3开发的,所以还要考虑到和CI3的兼容性。
下面是我在搜集资料中的一些关键内容:
http://stackoverflow.com/questions/34389...
http://socketo.me/
http://forum.codeigniter.com/thread-6340...
实时双向通信肯定是用 Websocket,不过我不建议用 PHP 做 websocket 的服务端,建议用 nodejs
另外,如果只是服务器推送,浏览器端可以用 EventSource,这个也是一个 HTML5 标准。
服务端消息同步到移动端
同步是双向的,从你的描述中没有看到需要双向同步。
可以试试第三方推送:比如个推、JPush等。
如果是双向的,可以使用 websocket。
为何不考虑异步推送? 服务器端一旦有新消息就给移动的主动推送,移动端有接收消息接口就可以了