管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:! v2 y! Q( T. W) @. k
- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
5 M( S8 {; k* a 下载WEB消息推送框架
+ l8 E! ^9 r+ I. Z" ]) M) [4 x9 k+ d( [4 f
下载19472次+ L3 q6 w% H0 s7 W, a" i3 N) e
% ]2 r# P C2 N) N+ A& c
PHPSocket.IO开发手册2 Z+ V; z- p' y. \; D/ z
4 J: s u/ H) t" ?' {
PHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
% A+ Z n$ L8 R. p' A R" ]! }其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容 / L, y% Y4 r" R6 D( Y/ z3 r0 y) L! n0 ]% W
效果2:- g* O! [6 ?7 U# ~6 v
见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计 ( @; J' e4 a# v2 M( x7 ~
2 p/ G- \8 M9 Z V
安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组) & @) J( m5 [$ I9 k ]
# P8 K; x+ y) U1 w7 P$ w& }; _" y: x1 ^+ j
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>, L* g! G/ v( a# H
- <script>7 N6 C" @9 Y+ i# R' G$ _
- // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
7 I( X" k# ^2 F; b" |; c - var socket = io('http://workerman.net:2120');( M. X. n& i3 \" S
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
4 E9 o$ J; ^% w" H! b; ~: E; r - uid = 123;! v8 W1 F) a& G+ p
- // socket连接后以uid登录0 j7 z* Z( K* F* }$ E
- socket.on('connect', function(){: C. F! r0 [: h' d
- socket.emit('login', uid);4 [. J9 a- O: v4 `$ Z/ D4 I
- });
5 o# f I1 a* q/ l$ S5 u) [: {( ` - // 后端推送来消息时
$ k2 ?4 w9 \" q% m3 S - socket.on('new_msg', function(msg){
9 S" W0 i; j+ ]9 ~) x - console.log("收到消息:"+msg);( ^: q; N* B- { d
- });
5 ~2 [& i1 k" d% D; [: V" z - // 后端推送来在线数据时) e1 A5 {* [* }' z5 W
- socket.on('update_online_count', function(online_stat){; ? ]# f5 G( ~4 B E" F# }7 |
- console.log(online_stat);
/ c2 }- _ E) h; G# s7 D9 r" l( g" G - });
; O4 h" |/ v @) D - </script>
复制代码 后端调用api向任意用户推送:- <?php
2 [5 J( x9 |2 v4 {. _, G - // 指明给谁推送,为空表示向所有在线用户推送
: {- v q- {) x& d4 G - $to_uid = "";
1 I' C: {0 w5 O; ~4 W3 _4 x; D - // 推送的url地址,使用自己的服务器地址/ Q: L' e2 D5 f
- $push_api_url = "http://workerman.net:2121/";3 B: D+ c# z" A$ v
- $post_data = array(
" p }+ u% Z* F! b: h - "type" => "publish",
, x/ Y- v4 [/ R& y; l - "content" => "这个是推送的测试数据",
( S0 @" q1 l( Z5 L8 @- O - "to" => $to_uid,
- \2 G! X7 y2 s! e1 O7 y3 l - );0 Z/ V6 z6 ^# a& }
- $ch = curl_init ();
' L3 ]# t6 j" \; H - curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
- ~" s" _5 E0 X* p - curl_setopt ( $ch, CURLOPT_POST, 1 );
$ a: C, }, K$ C- _" r& M; d - curl_setopt ( $ch, CURLOPT_HEADER, 0 );3 \1 w0 J. L9 n" n% w+ y
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );# @7 R& H4 [+ G0 x( G
- curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
% K, R8 {* O, D, X) a. u7 q - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));: @0 I2 C9 m% O0 {0 J: a0 G
- $return = curl_exec ( $ch );) Q/ ?7 `/ o: Q1 ] F
- curl_close ( $ch );8 @5 h- N( \% l0 f3 w
- var_export($return);
复制代码
3 l3 S. z5 I0 j& {/ `0 J& F
, h* ?6 ^+ W* `5 a& W! O3 Z! S* d) [% v- r& X9 v
' X' @4 r+ [. a, k% I8 U
6 z4 v2 Z9 l# n' H" P( t I本文摘自 https://www.workerman.net/web-sender7 |; f1 L' Y( }1 y4 E: O
1 _7 a4 j* ?9 q: x( f' ?. s/ ?+ t
- R# r( Q! C% R8 F( T2 y. c$ U& c6 P9 @
% o* C- ?9 c+ F% A* ?2 V& y
' B* E: \& y/ C
+ ^; s) m. F: N# d( ^$ S9 S2 Y" B5 [6 R8 P3 q# [
- |' ]! K; T# \
0 }5 [1 L1 u1 p6 e
2 L, J; M" Y! I9 k1 w+ S
+ q9 x; J4 N" I" L% v0 r& M" _; u( r0 \8 t) J z
# \8 C' Y8 G3 S0 p |
|