最近在作项目的过程当中,须要用到websocket来实现消息推送的功能,百度了一下,找到一个免费的websocket第三方框架【GoEasy】,地址:https://www.goeasy.io/javascript
试用事后,总的来讲效果不错,根据网站提供的教程,上手仍是很快的。php
根据GoEasy网站的介绍,目前提供完整的websocket先后端解决方案,简单的几行代码集成,便可快速搭建您的专属websocket服务。html
同时GoEasy还支持更多的前端技术框架好比小程序、react、vue、uniapp等。同时仍是支持php、java、python等服务端语言。前端
接下来咱们看看在react中如何使用GoEasy实现websocket消息推送:vue
一、 引入 GoEasy:java
目前GoEasy提供三种方式的引入,你能够根据实际项目的需求进行选择引入方式。python
<script type="text/javascript" src="https://cdn.goeasy.io/goeasy-1.0.3.js"></script> //若是须要支持低版本的IE6,IE7,IE8浏览器,请引入json2.js。 <script type="text/javascript" src="https://cdn.goeasy.io/json2.js"></script>
或react
npm install --save goeasy import GoEasy from 'goeasy';
二、初始化GoEasy:web
建立一个global.js全局变量存储文件,放在项目的根目录。npm
// global.js export default { goEasy: null }
import g from './global.js' //在index.js里初始化全局GoEasy对象 g.goEasy = new GoEasy({ host:'hangzhou.goeasy.io', //应用所在的区域地址: 【hangzhou.goeasy.io |singapore.goeasy.io】 appkey: "my_appkey", //替换为您的应用appkey onConnected: function() { console.log('链接成功!') }, onDisconnected: function() { console.log('链接断开!') }, onConnectFailed: function(error) { console.log('链接失败或错误!') } });
到此,咱们已在react中完成了GoEasy服务的引入,接下来咱们要进行在react中的收发消息测试。
三、react端接收消息:
import g from './global.js' g.goEasy.subscribe({ channel: "my_channel", //替换为您本身的channel onMessage: function (message) { console.log("Channel:" + message.channel + " content:" + message.content); } });
四、react端发送消息:
import g from './global.js' g.goEasy.publish({ channel: "my_channel", //替换为您本身的channel message: "Hello, GoEasy!" //替换为您想要发送的消息内容 });
五、服务端推送消息:
在 实际开发过程当中,咱们更多的会是从服务器端往react端发送消息。针对这样的使用场景,GoEasy提供了丰富的服务端Rest API接口,免去了自行搭建websocket服务器的麻烦。经过GoEasy提供的Rest API接口,你能够方便快捷的推送消息到react端。
URL:http(s)://<REST Host>/publish
在使用Rest API的过程当中,请根据您的应用所在区域,替换<REST Host>,杭州:rest-hangzhou.goeasy.io,新加坡:rest-singapore.goeasy.io。
Method:Post
参数:
名称 | 必要 | 描述 |
---|---|---|
appkey | 是 | 您的appkey |
channel | 是 | channel |
content | 是 | 您要发送的消息内容 |
更多关于Rest API的使用技巧,能够来这里看看:GoEasy服务器发送消息,GoEasy提供了php、java、python等多种服务端语言的支持。