接收消息页面:http://demos.workerman.net/web-sender/
推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content9 D0 y- i4 o& _8 k* x
其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
2 \ E* |4 g4 n9 @+ c效果2:
2 e/ F7 k6 b! p4 q' Z见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
0 ?8 S/ w" p" x
7 q; d4 ~6 e/ o1 h
安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
, G+ X% u% n# i8 W' \ ^
; J- u1 g4 A: k5 ]: |! ]; `8 c) {" q2 g- z5 }& y+ f
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>& }2 v/ K/ i1 g% w t5 B5 y
- <script>+ U4 i/ w5 H* |6 O2 T- F' Q
- // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip% Y F w1 f9 e, ?8 N8 d* l% u: S
- var socket = io('http://workerman.net:2120');7 l( l) x2 t* x& a
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
2 s0 _6 O% }. ?: R - uid = 123;3 s3 ~0 O+ h$ _ B4 ~) G
- // socket连接后以uid登录
; l$ g4 m4 @+ E/ R8 n: z - socket.on('connect', function(){
& l. b, [) D- L+ a - socket.emit('login', uid);
. E) F; A) ?& [2 m+ p1 g - });
1 |: i {+ o, O' l E" L! o - // 后端推送来消息时
: u* f! K) h2 R( T - socket.on('new_msg', function(msg){+ k U7 R( W: |8 v
- console.log("收到消息:"+msg);
9 |& x0 }, [0 `2 k) } - });
+ A ~' v {& O% i3 g! I5 }' | - // 后端推送来在线数据时
& j! {4 L7 ^+ u7 o/ g3 `# E - socket.on('update_online_count', function(online_stat){
: x- @: O- L1 v) ^& b2 Z" S# b8 K - console.log(online_stat);
% \- W( I D3 d& S! P$ X8 d& Q1 u. ? - });
. B: v/ A7 Z. V; h: \) V6 `7 O - </script>
复制代码 后端调用api向任意用户推送:- <?php
- U& o+ }3 l/ Y( S0 J - // 指明给谁推送,为空表示向所有在线用户推送
$ F: q5 f6 E( A8 l - $to_uid = "";
, F( t7 E: @5 H1 \' t; w# Q - // 推送的url地址,使用自己的服务器地址' u3 F8 a! `6 A% y& F0 R
- $push_api_url = "http://workerman.net:2121/";
5 K; ?) c* P/ y3 _0 F% O0 o% m - $post_data = array(
5 g5 K9 h, ^: Z. O+ u* [ - "type" => "publish",7 f% A: w. d! L' P0 V. I
- "content" => "这个是推送的测试数据",2 i7 \' H. T/ l' h
- "to" => $to_uid,
# M! q- n. Q$ D* k! _4 ] - );; D. A' s* v3 m
- $ch = curl_init ();
3 Q, S- `; Y$ ^! v. x - curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
. T- ~0 R$ d. v a( x - curl_setopt ( $ch, CURLOPT_POST, 1 );
; ?. D; d" h, |7 y - curl_setopt ( $ch, CURLOPT_HEADER, 0 );
* R' m% T: G8 C' t& o1 P - curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
" Y8 _8 V& l2 v% j - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
8 V5 w0 D0 e2 z" i7 x - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));4 e+ W- y/ u. \$ N
- $return = curl_exec ( $ch );
# u' e( i$ _) O( p, { - curl_close ( $ch );: k4 @& s: e. M5 h2 P: F6 Y
- var_export($return);
复制代码 / r- i6 p* b7 Z' I7 d; p6 Q% G& f! L
$ R/ S2 T0 o" [/ w
* X$ |5 z( R' h: Y6 f+ H2 N' D {$ u
! E/ n6 N# S( {/ Q, g本文摘自 https://www.workerman.net/web-sender5 v3 s/ P3 ^3 s5 b4 N2 o
! ]5 y) Z$ E! x/ B5 g' Q k1 x9 p. u6 U4 G* C4 A" n
. x9 P5 d% a. H3 X
$ A D/ k7 V9 v: z8 q; `' r0 W" s8 L" C9 }! n6 P$ S
, l! N8 N f8 C" |: {8 N