goEasy的简单使用

案列介绍:

  1. 前端配置goEasy(这里是配置vue项目)
    在main.js中配置一个全局参数
    因为前端只是为了接收消息,不需要推送消失所以我配置appkey是BS开头的那个
// //初始化
const goEasy = GoEasy.getInstance({host: "hangzhou.goeasy.io", //若是新加坡区域:singapore.goeasy.ioappkey: "BS-********",modules: ['pubsub'] //根据需要,传入‘pubsub’或'im’,或数组方式同时传入
});Vue.prototype.goEasy = goEasy;
Vue.prototype.pubsub = goEasy.pubsub;

使用示例

export default {beforeMount() {var self = this;//连接GoEasythis.goEasy.connect({data: {},onProgress: function(attempts) {console.log("GoEasy is connecting" + attempts);// self.unshiftMessage("GoEasy is connecting" + attempts);},onSuccess: function() {// self.unshiftMessage("GoEasy connect successfully.");console.log("GoEasy connect successfully.");},onFailed: function(error) {console.log("Failed to connect GoEasy, code:" + error.code + ",error:" + error.content);// self.unshiftMessage("Failed to connect GoEasy, code:" + error.code + ",error:" + error.content);}});//接收消息this.pubsub.subscribe({channel: "WXPay",onMessage: function(message) {// self.unshiftMessage(message.content);console.log("微信回调成功:"+message.content);if(message.content=="支付成功"){self.QRcodeUrl=imgUrl}},onSuccess: function() {// self.unshiftMessage('订阅成功.');console.log("订阅成功");},onFailed: function(error) {// self.unshiftMessage("订阅失败,错误编码:" + error.code + " 错误信息:" + error.content);console.log("订阅失败,错误编码:"+error.code + " 错误信息:" + error.content);}});},components: {Pagination},data() {return {imgUrl,QRcodeUrl: '',dialogVisible: false,list: null,listLoading: true,total: 0,goodsId: '',listQuery: {page: 1,limit: 10}}},created() {this.fetchData()},methods: {handleClose(done) {this.$confirm('确认关闭?').then(_ => {done();}).catch(_ => {});},fetchData() {var vm = this;this.axios({method: 'post',url: 'http://localhost:7002/llcItems/page',data: {"goodsId": vm.goodsId.trim(),"page": vm.listQuery.page,"size": vm.listQuery.limit}}).then(function(response) {console.log(response.data.data.list),vm.list = response.data.data.list,vm.total = response.data.data.total,vm.listLoading = false})},serchMsg() {this.listQuery.page = 1this.fetchData()},updateMsg(id) {this.$router.push("/editproduct/" + id)},addMsg(id) {this.$router.push("/addproduct")},// 获取二维码getQRcode(id) {var vm = this;this.axios({method: 'get',url: 'http://localhost:7002/wx/wxpayOrder?goodsId=' + id,responseType: 'blob', //  重点}).then(res => {//  res.data是返回的文档流const blob = new Blob([res.data]);const url = window.URL.createObjectURL(blob);vm.QRcodeUrl = url;vm.dialogVisible = true})},deleteMsg(id) {var vm = this;this.axios({method: 'delete',url: 'http://localhost:7002/llcItems/delete?goodsId=' + id,}).then(function(res) {if (res.data.data == true) {vm.$message({message: '删除成功',type: 'success'});vm.fetchData();}}).catch(function(error) {vm.$message.error('删除失败');})}}}
  1. 后端推给前端消息(就是支付成功微信回调的时候将消息推送给前端)
    注意这里的channl是唯一通道所以请自行考虑,还是我配置的appkey是BC开头那个因为需要接受和推送消息。
 <!--goeasy--><dependency><groupId>io.goeasy</groupId><artifactId>goeasy-sdk</artifactId><version>0.3.14</version></dependency>
@PostMapping("/wxpay")@ApiOperation(value = "微信回调地址")public Result<String> getPage(HttpServletRequest httpServletRequest) throws IOException {Map<String, String> map = WXutil.parseParam(httpServletRequest);System.out.println("参数解析:" + map);PayCallBackInfo payCallBackInfo = this.checkSign(map, MCH_KEY);if (null != payCallBackInfo && PayCallBackInfo.PAY_SUCCESS == payCallBackInfo.getStatus()) {applicationContext.publishEvent(new PaySuccessEvent(this, payCallBackInfo));} else {applicationContext.publishEvent(new PayFailEvent(this, payCallBackInfo));}Document responseDocument = DocumentHelper.createDocument();Element responseRootElement = responseDocument.addElement("xml");responseRootElement.addElement("return_code").addCDATA("SUCCESS");responseRootElement.addElement("return_msg").addCDATA("OK");System.out.println("微信响应参数:" + responseDocument.asXML());//更新订单状态ThreadUtil.execAsync(()->llcOrderService.update(map.get("out_trade_no")));//使用goEasy将支付成功的消息推送给前端GoEasy goEasy=new GoEasy("http://rest-hangzhou.goeasy.io","BC-********");goEasy.publish("WXPay","支付成功");return new Result<>(responseDocument.asXML());}

演示过程


vue项目参考demo
https://gitee.com/goeasy-io/GoEasyDemo-Vue-Helloworld

goEasy的简单使用相关推荐

  1. web中的GoEasy消息推送机制

    最近要用到消息推送机制,网上查了很多,什么websocket,pushlet,GoEasy等,最后发现还是GoEasy最简单方便,很容易入手,不到10分钟就可以进行web端的消息推送啦 话不多说,直接 ...

  2. GoEasy在Spring Boot的简单使用

    文章目录 HTML页面订阅接收消息 访问后端控制器发送消息 HTML页面订阅接收消息 对应需要填入的参数参考 GoEasy官网网址 页面内容 <!DOCTYPE html> <htm ...

  3. Python Web实时消息后台服务器推送技术---GoEasy

    越来越多的项目需要用到实时消息的推送与接收,怎样实现最方便呢?我这里推荐大家使用GoEasy,它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 支持we ...

  4. python websocket实现消息推送_Python Websocket消息推送---GoEasy

    Goeasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送!个人感觉goeasy推送更稳定,推送 速度快,代码简单易懂上手快 浏览器兼容性:GoEasy推送 支持websocket ...

  5. C# Web实时消息后台服务器推送技术---GoEasy

    越来越多的项目需要用到实时消息的推送与接收,怎样实现最方便呢?我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 支持w ...

  6. SSM项目使用GoEasy 实现web消息推送服务

      一.背景 之前项目需要做一个推送功能,最开始我用websocket实现我的功能.使用websocket的好处是免费自主开发,但是有几个问题:1)浏览器的兼容问题,尤其是低版本的ie:2)因为是推送 ...

  7. C(++) Websocket实现扫码二维码登录---GoEasy

    最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要 ...

  8. ASP.NET Web实时消息后台服务器推送技术---GoEasy

    越来越多的项目需要用到实时消息的推送与接收,怎样用ASP.NET实现最方便呢?我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEa ...

  9. C# Web实时消息后台服务器推送技术-GoEasy

    越来越多的项目需要用到实时消息的推送与接收,怎样用C#实现最方便呢?我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 ...

  10. node.js Websocket消息推送---GoEasy

    Goeasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送!个人感觉goeasy推送更稳定,推送速度快,代码简单易懂上手快 浏览器兼容性:GoEasy推送支持websocket 和 ...

最新文章

  1. 坚持完成这套学习手册,你就可以去 Google 面试了
  2. 数据关系模式设计的标准化
  3. 向量收敛在matlab中,matlab实验报告
  4. Appium查找元素
  5. 算法与数据结构(python):树与二叉树
  6. InputStream和OutputStream
  7. J2EE Architecture(6)
  8. ZeroMQ API简介
  9. Jenkins 构建触发器操作详解
  10. Excel乱码的解决方法
  11. vs vb连接mysql,用vs2010的vb.net建立和access数据库的连接后的奇怪问题:关于本地复制...
  12. 微软商店和防火墙打不开解决方法
  13. 华为U8500在USB调试模式下LOGCAT无打印信息的解决方法
  14. 【LeetCode】460 and 1132(LFU缓存机制)
  15. 旷视科技2023校园招聘提前批正式启动!
  16. C语言 指针的解引用详解
  17. 如何将图一-1变成图1-1(word题注的大写变成小写)
  18. matlab绘制中国地图
  19. python光棍节快乐_2020年光棍节快乐的祝福语10句
  20. ROM, SRAM, SDRAM的区别

热门文章

  1. Web实现:仿电子仪器网站 含HTML CSS部分 内含效果图
  2. STK航空仿真(五):坐标系
  3. 网易面经(内含腾讯ieg/IOS一面面经)
  4. EP100触发CAN中断但无法读取报文
  5. 通信中的“交织”技术
  6. native数据类型 react_React-Native 之 数据持久化
  7. matlab 匹配滤波相位谱,第1章匹配滤波器.doc
  8. 计算机地图制图符号制作的心得,计算机地图制图原理与方法——地图符号设计参考文档...
  9. 手把手教你打造全宇宙最强的专属 Firefox 浏览器
  10. 二维码生成(js实现)