这篇文章主要介绍了关于php 如何加入即时推送的功能,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

打开浏览器保持与服务器握手的websocket

之前用workerman接过很花时间,现在workerman对其代码做了优化-》https://www.workerman.net/web-sender

效果1:

接收消息页面:http://demos.workerman.net/web-sender/

推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content

其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容

效果2:

见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计

其它应用

vmstat服务器状态监控服务

WEB消息推送框架

BrowserQuest PHP版本摄像头视频直播Thrift RPC 远程调用框架Json RPC远程调用框架聊天室框架统计监控系统PHP小蝌蚪实时交互游戏 hotflappy bird 多人在线版游戏

安装启动

首先:参考手册检查/安装workerman环境

1、下载:(下载web-msg-sender,并解压缩到任意目录

2、启动:linux系统cd到到框架目录里运行php start.php start -d。windows系统进入到框架目录里双击start_for_win.bat文件启动。

3、测试:浏览器访问端口http://ip:2123或者http://域名:2123,例如 http://workerman.net:2123如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)

前端测试:

// 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip

var socket = io('http://workerman.net:2120');

// uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数

uid = 123;

// socket连接后以uid登录

socket.on('connect', function(){

socket.emit('login', uid);

});

// 后端推送来消息时

socket.on('new_msg', function(msg){

console.log("收到消息:"+msg);

});

// 后端推送来在线数据时

socket.on('update_online_count', function(online_stat){

console.log(online_stat);

});

后端调用api向任意用户推送:<?php

// 指明给谁推送,为空表示向所有在线用户推送

$to_uid = "";

// 推送的url地址,使用自己的服务器地址

$push_api_url = "http://workerman.net:2121/";

$post_data = array(

"type" => "publish",

"content" => "这个是推送的测试数据",

"to" => $to_uid,

);

$ch = curl_init ();

curl_setopt ( $ch, CURLOPT_URL, $push_api_url );

curl_setopt ( $ch, CURLOPT_POST, 1 );

curl_setopt ( $ch, CURLOPT_HEADER, 0 );

curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );

curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );

curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));

$return = curl_exec ( $ch );

curl_close ( $ch );

var_export($return);

在linux跑时,可能需要php的posix和pcntl扩展

WorkerMan的推送 添加到YII2 [ 2.0 版本 ]

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

php推送系统,php 如何加入即时推送的功能相关推荐

  1. 陌生人交友IM即时聊天系统-得推交友系统v3.0源码

    介绍: 得推交友系统是得推网络开发的一款针对陌生人的交友IM,支持H5\小程序\APP; 特色功能: 微社区动态 即时聊天 私聊 群聊 好友系统 礼物系统 直播系统 缘分匹配 金币系统 后端安装说明: ...

  2. java-php-python-ssm研究生推免系统计算机毕业设计

    java-php-python-ssm研究生推免系统计算机毕业设计 java-php-python-ssm研究生推免系统计算机毕业设计 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开 ...

  3. 若依集成CIM(即时推送系统)实现将服务端修改为SpringBoot+Vue前后端分离版(文末见代码下载)

    场景 若依前后端分离版本地搭建开发环境并运行项目的教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 CIM ...

  4. 即时通讯开发如何构建一套移动端消息推送系统

    消息推送作为移动端 APP 运营中的一项关键技术,已经被越来越广泛的运用. 本文追溯了推送技术的发展历史,剖析了其核心原理,并对推送服务的关键技术进行深入剖析,围绕消息推送时产生的服务不稳定性,消息丢 ...

  5. 推送系统从0到1(八):个性化精准推送的实现

    在上一篇,给大家介绍了实现精准推送的第一步:建立用户画像,大家可以回顾看看.完成用户画像的建立后,想要实现精准推送的简单很多.本篇将会给大家介绍一些基础的推荐算法,并以其中基于物品的协同过滤算法为例, ...

  6. 极光为华硕 ROG 游戏手机 3 搭建符合统一推送联盟标准的推送系统

    2020年7月23日,华硕 ROG 游戏手机3正式发布.该款手机为 ROG 玩家深度定制,旨在提供专属沉浸式游戏体验.华硕在发布会上同时宣布,由其合作伙伴.中国领先的移动开发者服务提供商极光(Auro ...

  7. 消息推送系统——(零)推倒萝莉之术

    当一个初学Web开发的童鞋,产生让服务器"主动"给浏览器客户端发送数据的想法的时候,比他入门稍早的同学会说: "这是Web!只能由浏览器发起请求,然后得到服务器返回的数据 ...

  8. 推送系统从0到1(一):是系统不是工具

    文章将针对推送系统展开分析,本篇文章为系列文章的一个开端,希望能够给你带来一些启发参考. 阅读本系列文章,你会获得的收获: 如果你是运营人员,你可以在文中了解推送所蕴含大量运营策略: 如果你是产品经理 ...

  9. 千万级在线推送系统架构解析

    2019独角兽企业重金招聘Python工程师标准>>> 千万级在线推送系统架构解析 移动短消息是大家所熟知的一种信息推送方式, 基于信令通道的推送在简单信息的体验方面已经被大家所接受 ...

最新文章

  1. 分布式检索系统的简单设计
  2. Tarjan 算法详解
  3. 【杂谈】从CV小白到人脸表情识别专栏作者,我与有三AI的故事
  4. WKWebview加载本地图片时出现路径问题
  5. [转载] Python命名空间和作用域
  6. Android实战技巧:ViewStub的应用
  7. 关于Mac电脑更新IP地址的解决方法!
  8. MATLAB 2018a Mac版安装激活教程
  9. 京东联盟PHP接口源码
  10. 番外4:自动进行功放输出阻抗匹配设计(匹配至4次谐波)
  11. MySQL从入门到入魔,总结我的学习历程,给有需要的人看!
  12. mongodb 建立索引提示异常:WiredTigerIndex::insert: key too large to index, failing 1483
  13. 伴性遗传-基因型频率和基因频率
  14. 企鹅号转正后是2级账号还有用吗,企鹅号不被系统推荐怎么办
  15. 如何看待小米发布的Redmi Note9系列手机?1299元起是否值得?
  16. python将excel导入生成矩阵
  17. FFT专题:IFFT后信号如何重建
  18. 商业化广告--体系学习-- 10 -- 业务实战篇 -- 效果优化:如何一步步从提升曝光量深入到提升销量?
  19. 今日小游戏:消除棋子
  20. fat32 linux 打包工具_自己封装系统(雨林木风一键系统封装工具V3.65)

热门文章

  1. mybatis ------ 懒加载(八)
  2. NestedScrollView、RecycleView、ViewPager 嵌套常见问题
  3. file.delete删除不了文件_非常实用的文件服务系统
  4. aix linux ftp,在AIX下安装配置FTP服务器
  5. java输出 4 7什么意思_Java学习4_一些基础4_输入输出_16.5.7
  6. Spring(一)概述
  7. python自定义配置文件读取_python读取和自定义配置文件的方法
  8. c语言学习进阶-C语言程序产生正态分布随机数
  9. OpenShift 4 之配置Insecure Registry和Blocked Registry镜像源
  10. (三)微调VGG16以对服装进行分类