Home  >  Article  >  Backend Development  >  CI3怎么实现服务端消息推送?

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

WBOY
WBOYOriginal
2016-06-06 20:13:20925browse

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

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

第一种: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。

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn