workerman——消息推送(web-msg-send)
前言
说下场景,当后台将号码池的号码分配给指定客服的时候,需要给指定的客户推送一条消息告诉该客户,通讯录有新增数据。
步骤
下载
https://www.workerman.net/web-sender
进入workerman的官网下载消息推送的包,下载后解压整体移入现有框架,我移入到了vendor下,测试下能不能跑,可以跑再进行下面的改造!
调试按着网站上给的即可
https://www.workerman.net/web-sender

前端
- 引入相应的JS文件 - //socket.io的js 
 <script src='https://cdn.bootcss.com/socket.io/2.0.3/socket.io.js'></script>
 <script src='//cdn.bootcss.com/jquery/1.11.3/jquery.js'></script>
 //消息提示条,在下载包里有
 <script src='/notify.js'></script>
- 推送 - 推送给个人 
 http://(域名|IP):2121/?type=publish&to=<用户id>&content=<推送内容>
 推送给所有人
 http://(域名|IP):2121/?type=publish&content=<推送内容>
- 流程 - 1.引入js文件 
 2.连接服务器端
 var socket = io('http://'+document.domain+':2120');
 3.连接后台
 socket.on('connect', function(){
 socket.emit('login', uid);
 });
 4.接收后台推送消息并且使用notify推送到界面上
 socket.on('new_msg', function(msg){
 $('#content').html('收到消息:'+msg);
 $('.notification.sticky').notify();
 });
后端
因为是在绑定关系的时候去推送消息,所以只要在绑定关系成功后利用自己封装的请求方法去发出请求。
封装的请求方法
function https_request($url,$data)
{
// 初始化
$ch = curl_init();
// 设置
curl_setopt($ch, CURLOPT_URL, $url);
// 检查ssl证书
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
// 从检查本地证书检查是否ssl加密
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $url); if (!empty($data) ) {
curl_setopt($ch, CURLOPT_POST, 1);// 开启post
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);// 发送post $data }
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($ch);
curl_close($ch); // close curl res
return $res;
}
请求代码
这个网址肯定是要活的在后台配置,所以从配置文件中读取即可!
$url = config('url.fornt_end_url');
$info = [
      'type'=>"publish",
      'to'=>$newData['uid'],
       'content'=>"您有一位新的客户{$newData['nickname']},请注意查看通讯录"
];
$re = https_request($url, $info);
效果图
因为前端是APP,现在代码还没看到,只能在后端界面上先测下

workerman——消息推送(web-msg-send)的更多相关文章
- Asp.net SignalR 实现服务端消息推送到Web端
		之前的文章介绍过Asp.net SignalR, ASP .NET SignalR是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信. 今天我 ... 
- java版Web Socket,实现消息推送
		# web socket是什么? WebSocket协议是基于TCP的一种新的网络协议. 它实现了浏览器与服务器全双工(full-duplex)通信,允许服务器主动发送信息给客户端. ## 用途 实时 ... 
- 实现web消息推送的技术和采用长轮询corundumstudio介绍
		实时消息的推送,PC端的推送技术可以使用socket建立一个长连接来实现.传统的web服务都是客户端发出请求,服务端给出响应.但是现在直观的要求是允许特定时间内在没有客户端发起请求的情况下服务端主动推 ... 
- WEB消息推送-原理篇
		这篇文章主要讲述B/S架构中服务器“推送”消息给浏览器.内容涉及ajax论询(polling),comet(streaming,long polling).后面会附上源代码. 最近在工作有这么一个需求 ... 
- SSE(Server-sent events)技术在web端消息推送和实时聊天中的使用
		最近在公司闲着没事研究了几天,终于搞定了SSE从理论到实际应用,中间还是有一些坑的. 1.SSE简介 SSE(Server-sent events)翻译过来为:服务器发送事件.是基于http协议,和W ... 
- web消息推送的各种解决办法
		摘要 在各种BS架构的应用程序中,往往都希望服务端能够主动地向客户端推送各种消息,以达到类似于邮件.消息.待办事项等通知. 往BS架构本身存在的问题就是,服务器一直采用的是一问一答的机制.这就意味着如 ... 
- 我有 7种 实现web实时消息推送的方案,7种!
		技术交流,公众号:程序员小富 大家好,我是小富- 我有一个朋友- 做了一个小破站,现在要实现一个站内信web消息推送的功能,对,就是下图这个小红点,一个很常用的功能. 不过他还没想好用什么方式做,这里 ... 
- web消息推送-goesay
		原文:http://www.upwqy.com/details/22.html 1 GoEasy简介: GoEasy - Web实时消息推送服务专家 最简单的方式将消息从服务器端推送至客户端 最简单的 ... 
- WEB消息推送-框架篇
		WEB消息推送-comet4j 一.comet简介: comet :基于 HTTP长连接的“服务器推”技术,是一种新的 Web 应用架构.基于这种架构开发的应用中,服务器端会主动以异步的方式向客户端程 ... 
随机推荐
- java有包名的调用没有包名的类,用反射
			没有包名,就是说在根目录,普通项目就是在src下,maven项目就是在src/java目录下 // 通过全类名,没有包名就直接是类名,有包名就要加上包名,比如:com.xiaostudy.TLStri ... 
- Linux学习-IP设置
			网卡命名规则 CENTOS6的网卡命名方式:它会根据情况有所改变而非唯一且固定,在CENTOS6之前,网络接口使用连续号码命名: eth0. eth1等,当增加或删除网卡时,名称可能会发生变化 CEN ... 
- Java连接数据库——最基础的方式
			JAVAWEB实现增删查改(图书信息管理)之Util类 Util.java ↓ package BookSystem.Other; import java.sql.*; import java.ut ... 
- 协议——IIC
			I²C即Inter-Integrated Circuit(集成电路总线),它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代设计出来的一种简单.双向.二线制总线标准.多用于主机和从机在数 ... 
- Latex局部字体大小设置
			tex 设置字体大小命令由小到大依次为: \tiny \scriptsize \footnotesize \small \normalsize \large \Large \LARGE \huge \ ... 
- RabbitMQ学习记录1
			前言 我是在解决分布式事务的一致性问题时了解到RabbitMQ的,当时主要是要基于RabbitMQ来实现我们分布式系统之间对有事务可靠性要求的系统间通信的.关于分布式事务一致性问题及其常见的解决方案, ... 
- 全栈项目|小书架|微信小程序-首页水平轮播实现
			首页效果 首页功能主要有 搜索(下篇文章介绍) 图书列表 图书列表 分析一波: 列表是水平滑动 点击列表会有按压效果:布局整体缩小 每个布局的信息从上到下排列分别是:图片.书名.作者.出版社 每个布局 ... 
- Linux用户组笔记整理
			一.Linux用户组概念 Linux用户组(group)就是具有相同操作权限范围的Linux用户管理起来: 比如有时我们要让同一类用户具有相同的权限,比如查看.修改某一文件或执行某个命令, 这时我们需 ... 
- php-sql-server-2017
			Download the Microsoft Drivers for PHP for SQL Server https://docs.microsoft.com/en-us/sql/connect/p ... 
- js(es6)数组去重
			// 利用set.reduce.filter去重 // Set function getSetArr(arr) { return [...new Set(arr)] } console.log(get ... 
