什么是消息推送

通过服务器自动推送消息到客户端(浏览器,APP,微信)的应用技术。

2. 为什么要使用消息推送技术

通常情况下都是用户发送请求浏览器显示用户需要的信息。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息。

3. 实现思路

1. 管理员发送消息到swoole服务。

2. Swoole服务接受到管理员发送的信息并且发送给其他的客户端

3. 其他的客户端通过WebSocket监听Swoole服务发送过来的信息并且输出。

4. 实现过程(CentOS环境)

4.1. 安装swoole扩展

pecl install swoole

4.2. 启动swoole服务器

在命令行中输入:

php ws_server.php 

ws_server.php中的代码

<?php
$server=new swoole_websocket_server("127.0.0.1",9795);
$server->on('open',function(swoole_websocket_server $server,$request){echo "server: handshake success with fd{$request->fd}\n";
});
$server->on('message',function(swoole_websocket_server $server,$frame){echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";foreach($server->connections as $fd){$server->push($fd, $frame->data);}
});
$server->on('close',function($ser,$fd){echo "client {$fd} closed\n";
});
$server->start();

4.3. 管理员向swoole服务发送信息

4.3.1. 安装swoole客户端

composer require textalk/websocket

4.3.2. 管理员的代码

<?php
require './vendor/autoload.php';
use WebSocket\Client;
$client = new Client( "ws://127.0.0.1:9795" );
$client->send("新的信息");

4.4. 客户端监听swoole服务的代码

<!DOCTYPE html>
<html>
<head><title></title>
</head>
<body><input type="text" name="shu" id="shu" value=""><button onclick="sendmsg()">浇水</button><script src="//cdn-static.ebaitian.cn/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript">var wsServer = 'ws://127.0.0.1:9795';
var websocket = new WebSocket(wsServer);
//监听链接
websocket.onopen = function (evt) {console.log("open");
};console.log(websocket.readyState);
//监听关闭
websocket.onclose = function (evt) {console.log("Disconnected");
};
//监听服务发送消息
websocket.onmessage = function (evt) {console.log(evt);
};
//监听异常
websocket.onerror = function (evt, e) {console.log('Error occured: ' + evt.data);
};
//js向服务器发送消息
function sendmsg(){if(websocket.readyState==1){var content = $('#shu').val();//$('#shu').val('')console.log(content);websocket.send(content);}
}
</script>
</body>
</html>

如何用PHP实现消息推送相关推荐

  1. iOS 10 消息推送(UserNotifications)秘籍总结(二)

    背景 上一篇博客iOS 10 消息推送(UserNotifications)秘籍总结(一)发布后被 简书编辑推荐至首页,这着实让我受宠若惊啊.可是好事不长,后面发生了让我伤心欲绝的事,我的女朋友不要我 ...

  2. Worktile中的实时消息推送服务实现

    在团队协同工具worktile的使用过程中,你会发现无论是右上角的消息通知,还是在任务面板中拖动任务,还有用户的在线状态,都是实时刷新.Worktile中的推送服务是采用的是基于xmpp协议.erla ...

  3. Worktile 中百万级实时消息推送服务的实现

    Worktile 中百万级实时消息推送服务的实现 转自:http://www.360doc.com/content/15/0907/19/1073512_497529854.shtml 这是一个创建于 ...

  4. php实现app消息推送

    如何用php实现APP消息推送 现在有很多的消息推送厂商,比如阿里云的消息推送,极光推送,融云的消息推送.他们的原理都是把sdk内置在app里面,达到消息推送的目的,通过一张图来了解一下,看不懂不要紧 ...

  5. iOS消息推送机制的实现

    iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务 ...

  6. 未读消息(小红点),前端 与 RabbitMQ 实时消息推送实践,贼简单~

    前几天粉丝群里有个小伙伴问过:web 页面的未读消息(小红点)怎么实现比较简单,刚好本周手头有类似的开发任务,索性就整理出来供小伙伴们参考,没准哪天就能用得上呢. 之前在 <springboot ...

  7. 友盟小米收不到推送消息_Android 手机收不到消息推送的设置指南 - 融云 RongCloud...

    如何解决 Android 手机因推送权限问题收不到消息提醒? 问题描述 部分 Android 手机系统在黑屏待机后自动清理后台运行的软件,这样影响了应用正常接收新的消息,需要开启手机的某些权限.此文档 ...

  8. iOS 消息推送原理及实现总结

    一.消息推送原理: 在实现消息推送之前先提及几个于推送相关概念,如下图: 1. Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Prov ...

  9. 安卓消息推送解决方案

    一.推送工具使用 我们在做安卓开发的时候,通常需要一些消息推送功能,我个人平时用的是极光推送,极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极 ...

最新文章

  1. jquery中ajax格式
  2. 控件多线程访问的问题
  3. linux第一课历史与未来方向
  4. 自定义网页头部前面小图标
  5. AMS1117输入电源加反后换元件
  6. 中西医结合耳鼻咽喉科疾病 100254
  7. Unity 第三人称人物移动
  8. Latex中使用BibTex插入参考文献
  9. 3D目标检测-二阶段方法(region proposal-based Methods)之基于语义分割的方法(Segmentation based)解读
  10. 手把手系列-从零开始手把手教你前后分离网站
  11. 几何算法合集(3D)
  12. java零基础学习第九天
  13. c语言str系列函数
  14. 免费生成!火爆全网的个人行程卡纪念版!
  15. ssm毕设项目高校学生社团管理系统n4pcu(java+VUE+Mybatis+Maven+Mysql+sprnig)
  16. 用PS制作简单婚纱海报
  17. 欧姆龙PLC远程上下载实际操作分享
  18. 作为前端开发,我为何疯狂推荐WebStorm?
  19. 干货(附源代码) | 爬取一万条b站评论,分析9.7分的新番凭啥这么火?
  20. 全文检索框架Lucene——原理

热门文章

  1. 编程代码风格之茴字有四种写法
  2. The read operation timed out
  3. HOUDINI 鱼群
  4. Rational Rose简明实用教程
  5. vue+webpack在“双十一”导购产品的技术实践(转发)
  6. 涡街流量计要怎么选型呢
  7. 打印贴标机的吹气结构说明
  8. Windows server远程桌面端口修改
  9. 西安邮电大学【活动】
  10. html href 字体颜色,html超链接文字颜色