接收消息页面:http://demos.workerman.net/web-sender/
推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content2 {1 D: j# Q6 V" W0 s" u1 s( u3 A
其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
5 C/ q4 p5 Y1 W* k% u( u效果2:
2 ^" Z% i9 D1 H1 F: F p' U& r见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
$ J" x7 o m" h
0 \: f3 M) y' o" }' o" z安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
$ F. N( @! ?8 ^$ q; O. y8 d4 W9 ~
" x* P) g. z7 U+ `' O; I3 c5 ?4 p) |: d
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>7 w- L9 x3 s8 \$ T' d- H( J
- <script>! P& x9 _* N# ^* q
- // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
4 f6 g+ Z7 a: B% @) D - var socket = io('http://workerman.net:2120');
0 o2 E' r* ]( k - // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
' ]& a# p1 D- g; w7 f - uid = 123;2 s: r. T9 l7 c
- // socket连接后以uid登录
* k6 N( X+ _2 R( c - socket.on('connect', function(){* a0 x z- D( w3 b
- socket.emit('login', uid);
8 _9 K0 K: |& W, B5 [/ {( U - });
- ]4 h1 T% G# n5 ]5 r; u6 ] - // 后端推送来消息时 j' @* w5 C. n$ v
- socket.on('new_msg', function(msg){$ E' f: \# _ y' Q8 ?) k
- console.log("收到消息:"+msg);4 J/ b! h3 n+ A. e! h
- });+ s( E! |9 w9 I, {$ \: y$ I7 x
- // 后端推送来在线数据时
- @+ u ?' X" k; I - socket.on('update_online_count', function(online_stat){
$ ]" v/ `* z7 v$ G - console.log(online_stat);
' b9 i0 ]) X( p; x; L4 W - });2 `$ j l! P2 v$ k
- </script>
复制代码 后端调用api向任意用户推送:- <?php
4 u% L1 l. U) K- M7 D; a2 p - // 指明给谁推送,为空表示向所有在线用户推送) R+ \/ l7 P4 I# c" n6 s/ ]/ H
- $to_uid = "";
1 ?4 @4 A+ z6 t - // 推送的url地址,使用自己的服务器地址
+ t( ]) H+ O& f5 k4 j - $push_api_url = "http://workerman.net:2121/";
6 Y2 G/ d$ D! v) i - $post_data = array(
$ U+ b4 l9 d6 c& U4 D - "type" => "publish",
( S O. \1 z- P8 P - "content" => "这个是推送的测试数据",
* p9 i6 n# m* Y$ R' N; Y6 S - "to" => $to_uid,
& x+ [, V3 x8 f2 k - );9 w' x6 d/ Q* z: `2 t
- $ch = curl_init ();
) S$ V1 } R) Z c- o - curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
6 r* \. N; s d) b7 w$ g+ i; H: I( E/ \ - curl_setopt ( $ch, CURLOPT_POST, 1 );( B. o8 O' y f# b# ~ I2 r, }) O
- curl_setopt ( $ch, CURLOPT_HEADER, 0 ); F0 G C. Z* W7 [3 v3 w
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );- k* W, t) [" f- p ^( ^
- curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
' R" N3 \2 w! ~ t7 J - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));/ Z) A, Q0 P/ ~% A# D# c. i$ A) r
- $return = curl_exec ( $ch );+ b2 k' k" r" ]
- curl_close ( $ch );1 A% }2 l# O8 u7 U0 Q$ l
- var_export($return);
复制代码
, F8 X3 ?& x! ~: l8 }7 h! t7 q' R% D% J% {( c; {* v& y
, h- V7 c6 j( x/ r( ?, J$ I+ I8 V0 N1 T" ?4 W
* W. J5 J6 P+ _; G. @ v
本文摘自 https://www.workerman.net/web-sender5 d% @( E) B- h. R
& U: g7 \, ^6 w
* W# G! y) d/ G. h; M6 z6 _* ]7 T& |. q+ i; C6 a& ?5 b+ m
+ V) u+ W: X/ j. |; Z/ h
3 e4 n/ J5 u- v/ X
6 ?- F4 z/ w( B. S% B: k" c7 }