GoEasy实现websocket 推送消息通知到客户端
最近在实现一个推送功能,用户扫描二维码签到,后台及时将签到成功信息推送到浏览器端。排除了前端ajax轮询的方式,决定采用websocket及时推送。 于是发现了第三方websocket推送库GoEasy,可以免费12个月10w条推送,支持RestApi推送,使用前需要注册一个账号。 测试功能如下,当用户扫描二维码,就弹出一条通知消息(带语音)提醒。 用到了iziToast.js这个jquery通知插件,很棒的。
<link rel="stylesheet" href="/module/plug/iziToast/iziToast.min.css"> <script src="/module/plug/iziToast/iziToast.min.js" type="text/javascript"></script> <script type="text/javascript" src="http://xxx.goeasy.io/goeasy.js"></script> <div class="layui-card"> <div class="layui-card-header"> <h2 class="header-title">测试</h2> <span class="layui-breadcrumb pull-right"> <a href="#!console">首页</a> <a><cite>测试</cite></a> </span> </div> <div class="layui-card-body"> <a href="#" class="trigger-success" data-iziToast>Success</a> <audio src="/module/plug/iziToast/34E888piCMHu.mp3" id="audioPlay" controls="controls"></audio> <img src="http://localhost:8086/api/sys/qrcode?str=111&pixel=9" /> </div> </div> <script type="text/javascript"> var goEasy = new GoEasy({ appkey: 'xxx', onConnected: function () { console.log("成功连接GoEasy。"); }, onDisconnected: function () { console.log("与GoEasy连接断开。"); }, onConnectFailed: function (error) { console.log("与GoEasy连接失败,错误编码:" + error.code + "错误信息:" + error.content); } }); $(function () { // // CONFIG IZIToast // iziToast.settings({ timeout: 5000, // position: 'center', // imageWidth: 50, pauseOnHover: true, // resetOnHover: true, close: true, progressBar: true, // layout: 1, // balloon: true, // target: '.target', // icon: 'material-icons', // iconText: 'face', // animateInside: false, // transitionIn: 'flipInX', // transitionOut: 'flipOutX', }); goEasy.subscribe({ channel: "office_11", onMessage: function (message) { console.log("Channel:" + message.channel + " content:" + message.content); iziToastSuccess(message.content); } }); function iziToastSuccess(msg) { iziToast.success({ title: 'OK', message: msg, position: 'bottomRight', transitionIn: 'bounceInLeft', // iconText: 'star', onOpen: function () { console.log('callback abriu! success'); autoPlay(); //playSound(); }, onClose: function () { console.log("callback fechou! success"); } }); } $(".trigger-success").on('click', function (event) { event.preventDefault(); iziToastSuccess('测试打卡成功'); }); function autoPlay() { $('#audioPlay').get(0).play() } }) </script>
GoEasy实现websocket 推送消息通知到客户端的更多相关文章
- 模拟websocket推送消息服务mock工具二
模拟websocket推送消息服务mock工具二 在上一篇博文中有提到<使用electron开发一个h5的客户端应用创建http服务模拟后端接口mock>使用electron创建一个模拟后 ...
- iOS监听模式系列之推送消息通知
推送通知 和本地通知不同,推送通知是由应用服务提供商发起的,通过苹果的APNs(Apple Push Notification Server)发送到应用客户端.下面是苹果官方关于推送通知的过程示意图: ...
- Yii1.1框架实现PHP极光推送消息通知
一.下载极光推送PHP SDK,解压后放在/protected/components/目录下,如下图所示: 二.完善修改下官方的demo例子,我这里复制一份demo,改为NotifyPush.php, ...
- 基于SuperSocket的IIS主动推送消息给android客户端
在上一篇文章<基于mina框架的GPS设备与服务器之间的交互>中,提到之前一直使用superwebsocket框架做为IIS和APP通信的媒介,经常出现无法通信的问题,必须一天几次的手动回 ...
- 使用PushSharp给iOS应用推送消息
PushSharp是一个C#编写的服务端类库,用于推送消息到各种客户端,支持iOS(iPhone/iPad).Android.Windows Phone.Windows 8.Amazo.Blackbe ...
- 从构建分布式秒杀系统聊聊WebSocket推送通知
秒杀架构到后期,我们采用了消息队列的形式实现抢购逻辑,那么之前抛出过这样一个问题:消息队列异步处理完每个用户请求后,如何通知给相应用户秒杀成功? 场景映射 首先,我们举一个生活中比较常见的例子:我们去 ...
- Spring Boot 集成 WebSocket 实现服务端推送消息到客户端
假设有这样一个场景:服务端的资源经常在更新,客户端需要尽量及时地了解到这些更新发生后展示给用户,如果是 HTTP 1.1,通常会开启 ajax 请求询问服务端是否有更新,通过定时器反复轮询服务端响应的 ...
- IOS 本地通知推送消息
在现在的移动设备中,好多应用性的APP都用到了推送服务,但是有好多推送的内容,比如有的只是单纯的进行推送一个闹钟类型的,起了提醒作 用,有的则是推送的实质性的内容,这就分为推送的内容来区别用什么推送, ...
- spring集成webSocket实现服务端向前端推送消息
原文:https://blog.csdn.net/ya_nuo/article/details/79612158 spring集成webSocket实现服务端向前端推送消息 1.前端连接webso ...
随机推荐
- nodejs 对 png 图片的像素级别处理
使用node对图片的像素进行处理 这里使用常见的图片灰度处理为例子: 用到了 pngjs 的 npm 库,这个库可以将 png 的图片文件 Buffer 流,转换为 r g b a 为 255 的像素 ...
- git 去除版本控制
git会进入当前文件目录, 然后执行如下命令: find . -name ".git" | xargs rm -Rf 该项目就会去除git的版本控制了.再修改的话也不会影响git的 ...
- tiny-Spring【1】
Spring框架的两大特性:IOC.AOP 1,IOC特性 IOC:IOC,另外一种说法叫DI(Dependency Injection),即依赖注入.它并不是一种技术实现,而是一种设计思想. 在任何 ...
- C#操作DOS命令,并获取处理返回值
// /*---------------- // // 文件名:Method // // 文件功能描述: // // 使用 ADB 来进行安卓设备与PC端之间的文件交互,具体adb命令操作请百度 ...
- C#通过重载构造函数传递参数、实现两个窗体下的方法的互相调用
直接切入主题 有时候同一个项目下我们可能会使用多个窗体,窗体间方法互相调用也不可避免,好了,使用无参无返回值的方法,开始上图 1.新建一个winform项目Form1,并再添加一个窗体Form2:拖入 ...
- opengl 笔记
1. 本函数可以禁用多边形正面或背面上的光照.阴影和颜色计算及操作,消除不必要的渲染计算是因为无论对象如何进行旋转或变换,都不会看到多边形的背面.用GL_CULL_FACE参数调用glEnable和g ...
- C++ DLL debug版本在其他PC上缺少依赖的处理方式
1.正常情况提供给其他人的都是Release版本DLL 2.在需要提供Debug版本时,目标机器上可能会缺少环境,或者和生成DLL的环境不匹配导致DLL无法加载,提示DLL无法找到. 3.使用DLL依 ...
- canvas验证码实现
1 <!DOCTYPE html> <html> <!-- head --> <head> <meta charset="utf-8&q ...
- python日志实时分析
python随着人工智能的发展,越来越火热.但其实python在运维测试方面,也是一把利器. 最近就碰到了个需求,就顺手写了个python程序.用惯了go,不过发现python好像更简单点 :-) 涉 ...
- jvm系列(七):jvm调优
转自:https://www.cnblogs.com/ityouknow/p/6437037.html 16年的时候花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其 ...