首页 » PHP教程 » 小法式聊天php技巧_微信小轨范运用GoEasy实现websocket实时通讯

小法式聊天php技巧_微信小轨范运用GoEasy实现websocket实时通讯

访客 2024-12-07 0

扫一扫用手机浏览

文章目录 [+]

同时由于微信小程序利用的是Javascript语法,对前端开拓职员而言,险些是没有学习本钱和技能门槛的。
对付大部分场景,都可以利用小程序快速开拓实现,不论是开拓周期还是开拓本钱都低的让人笑哭,以是受到了技能开拓团队的各种追捧~

但如果要在小程序里快速的实现一个即时通讯功能,就有点尴尬,由于微信官方供应的只是一个底层的websocket api,要在项目中直策应用,还须要做很多额外的事情,比如首先就须要搭建自己的websocket做事~

小法式聊天php技巧_微信小轨范运用GoEasy实现websocket实时通讯

那有没有大略的办法呢? 当然是有的!

小法式聊天php技巧_微信小轨范运用GoEasy实现websocket实时通讯
(图片来自网络侵删)

本日

微信小程序demo

本demo已经完成了真机下的小程序的测试,完全源代码开源到oschina的码云上,clone后,只须要将代码里的appkey换本钱身的common key,就可以体验了, 源码网址:https://gitee.com/goeasy-io/GoEasyDemo-wxapp-Helloworld

1、获取appkey

GoEasy官网(www.goeasy.io/)上注册账号,创建一个运用,拿到您的appkey。

获取appkey

GoEasy供应了两种类型的appkey:

Common key: 即可以吸收,也可以发送,与Subscribe Key最大的差异便是有写权限,可以发。
适用于有发送需求的客户端和做事端开拓。
Subscribe key: 只能吸收,不可以发送,与Common Key最大的差异便是没有写权限,只能收。
可以用于一些没有发送需求的客户端。
2、获取GoEasy SDK

下载 https://cdn.goeasy.io/download/goeasy-1.0.11.js

import GoEasy from './goeasy-1.0.11';3、初始化GoEasy工具

var self = this;this.goeasy = GoEasy({ host: 'hangzhou.goeasy.io', appkey: "您的appkey", onConnected: function () { console.log("GoEasy connect successfully."); self.unshiftMessage("连接成功."); }, onDisconnected: function () { console.log("GoEasy disconnected.") self.unshiftMessage("连接已断开."); }, onConnectFailed: function (error) { console.log(error); self.unshiftMessage("连接失落败,请检讨您的appkey和host配置"); }})

根据您在GoEasy后台创建运用时选择的区域,来传入不同的Host,如果您创建GoEasy运用时,选择了杭州,那么host:"hangzhou.goeasy.io"。
选择了新加坡,host:"singapore.goeasy.io"。

如果您的大部分用户都是在海内,创建运用时,记得选择杭州,以便得到更快的通讯速率。

4、小程序端吸收

var self = this;this.goeasy.subscribe({ channel: "my_channel", onMessage: function (message) { self.unshiftMessage(message.content); }, onSuccess: function () { self.unshiftMessage('订阅成功.'); }});

很多朋友会问channel从哪里来,如何创建,该当传入什么呢?

根据您的业务需求来设定,channel可以为任意字符串,除了不能包含空格,和不建议利用中文外,没有任何限定,只须要和的发送端保持同等,就可以收到。
channel可以是您直播间的uuid,也可以是一个用户的唯一表示符,可以任意定义,channel不须要创建,可以随用随弃。

5、小程序端发送:

发送时,须要把稳channel一定要和subscribe的channel完备同等,否则无法收到。

this.goeasy.publish({ channel: "my_channel", message: self.data.message, onSuccess: function () { self.setData({ message: '' }); //清空发送内容 console.log("send message success"); }, onFailed: function (error) { self.unshiftMessage('发送失落败,请检讨您的appkey和host配置.'); }});

本代码源码下载:https://gitee.com/goeasy-io/GoEasyDemo-wxapp-Helloworld

特殊强调:

在运行之前,一定要在微信"大众年夜众号平台配置socket合法域名,否则无法建立连接。

详细步骤:

访问mp.weixin.qq.com,进入微信公众年夜众平台|小程序 -> 设置 -> 开拓设置 -> 做事器域名socket合法域名-> 添加GoEasy的地址: wx-hangzhou.goeasy.io(记得wx-开头)若您创建GoEasy运用时选择了新加坡区域则添加地址:wx-singapore.goeasy.io

答疑韶光:

1、我的做事器端可以给小程序发送吗?都支持些哪些措辞?

当然可以,任何措辞都可以通过调用GoEasy的Rest API发送,同时为了大家方便,GoEasy的官方文档里,也准备了Java, C#,NodeJS,PHP,Ruby和Python等常见措辞调用REST API的代码,这里获取更多详情:https://www.goeasy.io/cn/doc/server/publish.html

2、GoEasy可以发送图片,语音和视频吗?

当然可以,您可以通过推送文件路径的办法来实现文件的发送。
按照行业老例,不论MSN,微信,QQ对付图片和视频,常日的做法都是,只推送文件路径,而不会推送文件本身。
你如果有把稳的话,当您接管图片和视频的时候,收到后,等一下子才能看,便是由于发送的时候,只发送了路径。

3、GoEasy和微信小程序官方的websocket API有什么差异和上风?

小程序官方的websocket API紧张是用来与您的websocket做事通讯,以是利用小程序websocket的条件是,首先要搭建好您自己的websocket做事,然后与之通讯。
这是一个纯技能的API,在建立网络连接后,还有很多的事情须要自己来完成,比如:

须要自己实现心跳机制,来掩护网络连接,来判断客户真个网络连接状态;须要自己实现断网自动重连;须要自己掩护列表,确保碰着断网重连后,能够补发;须要自己掩护一个客户端列表;等等很多细致而繁杂的事情,比如websocket的安全机制和性能优化;

此之外做事端也有很多事情须要自己完成,有兴趣自己搭建websocket的话,可以参考这篇技能分享《搭建websocket推送做事,必须要考虑的几个问题》

而GoEasy是一个成熟稳定的企业级websocket PAAS做事平台,开拓职员不须要考虑websocket做事真个搭建,只须要几行代码,就可以轻松实现客户端与客户端之间,做事器与客户端之间的的websocket通信,不须要考虑性能,安全,高可用集群的问题,只须要全力专注于开拓自己的业务功能就好了。

GoEasy已经内置websocket中必备的心跳,断网重连,补发,历史和客户端高下线提醒等特性,开拓职员也不须要自己搭建websocket做事处理集群高可用,安全和性能问题。
GoEasy已经稳定运行了5年,支持千万级并发,成功支撑过很多有名企业的主要活动,安全性和可靠性都是久经磨练。

4、GoEasy在小程序的开拓中紧张用在那些场景呢?

从运用处景上来说,所有须要websocket通信的场景,GoEasy都可以完美支持:

谈天,IM,直播弹幕,用户高下线提醒, 在线用户列表扫码点菜,扫码登录, 扫码支付, 扫码签到, 扫码打印事宜提醒,工单,订单实时提醒在线拍卖, 在线点餐,在线选座 实时数据展示,实时监控大屏, 金融实时行情显示,设备监控系统实时位置跟踪,外卖实时跟踪,物流实时跟踪远程画板,远程医疗,游戏,远程在线授课

5、GoEasy的文档为什么这么大略?大略到我都不知道如何利用

大略还不好吗?GoEasy从研发的第一天,就把追求API的极简作为我们的事情重点。
严格掌握接口的数量,便是是为了降落开拓职员的学习本钱,实在便是为了让您爽啊!
但这并不影响GoEasy完美支持所有的websocket即时通讯需求。

标签:

相关文章

activemqmqttphp技巧_MQTT 协议真的不难

那么读者的哀求必须要知足啊,以是现在 @一下这位小姐姐,来听课啦!什么是 MQTT 协议MQTT 协议的全称是 Message Q...

PHP教程 2024-12-09 阅读0 评论0