【教程】uniapp websocket实现消息推送
部分开发者在使用uniapp的过程中会用到websocket,但是uniapp框架提供的websocket服务并不是尽善尽美。
我在这里为大家介绍一款第三方的websocket推送服务:GoEasy,完美支持uniapp。
目前GoEasy提供完整的websocket前后端解决方案,简单的几行代码集成,即可快速搭建您的专属websocket服务。
同时GoEasy还支持更多的前端技术框架比如小程序、react、vue、uniapp等。同时还是支持php、java、python等服务端语言。
接下来我们看看在uniapp中如何使用GoEasy实现websocket消息推送:
1、引入 GoEasy:
目前GoEasy提供三种方式的引入,你可以根据实际项目的需求进行选择引入方式。
<script type=”text/javascript” src=”https://cdn.goeasy.io/goeasy-1.0.3.js”></script>
或
npm install –save goeasyimport GoEasy from ‘goeasy’;
或下载 https://cdn.goeasy.io/goeasy-1.0.3.js
import GoEasy from ‘./goeasy-1.0.3’;
2、初始化GoEasy:
// 在main.js里初始化全局的GoEasy对象
Vue.prototype.$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('连接失败或错误!')
    }
});
到此,我们已在uniapp中完成了GoEasy服务的引入,接下来我们要进行在uniapp中的收发消息测试。
3、uniapp端接收消息:
this.$goEasy.subscribe({
    channel: "my_channel", //替换为您自己的channel
    onMessage: function (message) {
        alert("Channel:" + message.channel + " content:" + message.content);
    }
});
4、uniapp端发送消息:
this.$goEasy.publish({
    channel: "my_channel", //替换为您自己的channel
    message: "Hello, GoEasy!" //替换为您想要发送的消息内容
});
5、服务端推送消息:
在 实际开发过程中,我们更多的会是从服务器端往uniapp端发送消息。针对这样的使用场景,GoEasy提供了丰富的服务端Rest API接口,免去了自行搭建websocket服务器的麻烦。通过GoEasy提供的Rest API接口,你可以方便快捷的推送消息到uniapp端。
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等多种服务端语言的支持。
如果你需要uniapp websocket的demo演示代码,可以注册GoEasy开发者账号,然后在GoEasy控制台联系GoEasy技术支持获取。【立即注册】