获取变推送,被动变主动
以往一提到需要数据实时显示,大家首先想到的就是利用轮询方式定时向后台去查看有没有信息,有的话,web页面将向下拉取这些数据。慢慢地大家意识到这种方式十分消耗客户端和服务端的资源,那么怎么做是最优方式呢? 将被动变主动!就如同对讲机一样,当对方有话要讲时直接讲你就可以听到了,而不是你不停问对方有话讲没。由此而衍生出的技术有websocket, socket.io。它们的共同特点都是在客户端和服务器端建立一个管道,通过这个管道服务器端可以直接将实时信息主动推送给客户端。
直击痛点
恐怕问题又来了,如何正确有效的将websocket, socket.io应用到你的系统中呢?于是乎你开始找谷哥,找度娘,发现大家的实现实例都是长篇大论,代码都是几百行。头痛吗?如果这时有人已经集成了这些技术,但是代码复杂度降低了几十个点,你是不是心动了呢?
技术选择
到目前为止能够提供推送服务的技术不在少数,什么PubNub,极光,云推,友盟,GoEasy等。如何选择?我选择的原则是代码是否简单,代码是否易懂,服务是否稳定。经过对比,PubNub和GoEasy在代码的简洁易懂方面是达到了我的要求的,代码实现思路跟用对讲机通信一样简单明了。但是由于PubNub是国外的产品,有时候访问官网需要连接VPN,考虑到系统用户都在国内及服务的稳定性,最后GoEasy拔得头筹。
大道至简
既然选择了GoEasy, 不在此介绍一下它的代码,谁知道我是不是口说无凭?下面我用对讲机来比喻GoEasy实现推送消息的过程。
假如你是你是服务器端,你的女朋友是客户端:
1. 既然要通信,至少你和女朋友每人要有一台对讲机吧。
服务器端:引入GoEasy到项目中
<repository> <id>goeasy</id> <name>goeasy</name> <url>http://maven.goeasy.io/content/repositories/releases/</url> </repository> ... <dependency> <groupId>io.goeasy</groupId> <artifactId>goeasy-sdk</artifactId> <version>0.3.3</version> </dependency>
客户端:引入GoEasy.js
<script type="text/javascript" src="http(s)://cdn.goeasy.io/goeasy.js"></script>
2. 打开对讲机的电源,确保你们在可通讯范围内。
服务器端:创建一个GoEasy对象,appkey连接到GoEasy的凭证
GoEasy goEasy = new GoEasy("appkey" );
客户端:创建一个GoEasy对象,appkey连接到GoEasy的凭证
<script type="text/javascript">var goEasy = new GoEasy({ appkey: 'Your app key here' }); </script>
3. 将你们的对讲机调到同一频道,你开始讲话,女朋友准备收听
客户端:订阅频道1
goEasy.subscribe({ channel: 'channel1', onMessage: function(message){ alert('Meessage received:'+message.content);//女朋友听到的内容 } });
服务器端:往频道1推消息
goEasy.publish('channel1', '妹妹,我宣你!');
这里服务器端使用的是GoEasy的Java SDK, 如果你使用的是其他语言,则可以通过restful API来推送消息,一个url, POST 请求,三个参数,就可以轻松搞定!
如果大家有其他更好的选择,欢迎留言讨论!
相关推荐
NULL 博文链接:https://fengziit.iteye.com/blog/2334796
本篇文章主要介绍了PHP实现Web实时消息后台服务器推送技术,这里整理了详细的代码,有需要的小伙伴可以参考下。
最近使用GoEasy在web端进行实时信息推送,代码极其简单,记录一下,供大家参考
详细的GoEasy推送例子,里面有说明文档和代码实现例子,很容易实现推送功能。
1.启动项目:访问http://localhost:8080/goeasy/ 2.执行main方法,页面弹出弹窗表示成功.
Java实现GoEasy实时推送demo、JAVA Web实时消息后台服务器推送技术
为了测试效果,大家可以多打开几个页面然后在推...另外大家也可以打开goeasy 官网上的chat demo页面来查看推送结果。(资料中的appkey用的是goeasy demo的key,在后续实现中,大家需要通过注册来获得属于自己的appkey)
越来越多的项目需要用到实时消息的推送与接收,我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 支持websocket 和polling两种连接方式,从而...
goeasy开发相关jar包 简单demo
goeasy-0.1.jar
GoEasy上架DCloud Uniapp插件市场已经有一个多月了,收到很多Uniapp开发人员的赞扬和好评,小编在此隔着屏幕向大家鞠躬,小编和GoEasy团队会继续努力,持续为Uniapp开发者提供最简单且优雅的API,稳定高速可靠的即时...
goeasy
基于node的前端websocket简单实时推送数据基本用法 含有goEasy基础版本
GoEasy小程序即时通讯源码是一个基于GoEasy提供的websocket通讯服务 实现的小程序即时通讯,支持一对一单聊、群聊、会话列表、上下线提醒、 历史消息、离线消息,支持发送图片、视频、语音,更多功能可以下载下来...
GoEasy小程序即时通讯源码是一个基于GoEasy提供的websocket通讯服务,实现的小程序即时通讯,支持一对一单聊、群聊、会话列表、上下线提醒、历史消息、离线消息,支持发送图片、视频、语音,更多功能可以下载下来...
该示例将演示在原生微信小程序中使用GoEasy快速实现websocket实时通讯。 小程序注意事项: 如果开发微信小程序,需要登录到微信官方后台,将wss://wx-hangzhou.goeasy.io加入到socket合法域名列表 替换您的appkey: ...
私聊、群聊、会话列表,文字、表情,图片,语音,视频消息 支持发送自定义业务消息,比如处方,订单,红包,地理位置等 手机通知栏提醒,厂商通道支持:iOS,谷歌FCM,华为,小米,VIVO,OPPO,魅族 ...
项目中测试通过的实用jar包,消息即时提醒功能用到的工具类包
uniapp使用GoEas来实现的Im个人聊天,直接运行即可,用户名在lib/restapi.js中。注,为了方便我的appkey直接可以用,不过仅仅两个月可用。如果发现运行不了,请去GoEasy中申请appkey
GoEasy小程序即时通讯源码是一个基于GoEasy提供的websocket通讯服务,实现的小程序即时通讯,支持一对一单聊、群聊、会话列表、上下线提醒、历史消息、离线消息,支持发送图片、视频、语音,更多功能可以下载下来...