接收消息页面:http://demos.workerman.net/web-sender/
推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
; ^$ R) {8 f4 z8 W2 F4 I其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
3 x- j/ C" `& [) ^% n/ x- V- J效果2:
9 O, Q; `, ~1 n见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
3 k, z# [0 `5 H! }- G! Z0 C2 d e& q' q/ k
安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
& k0 q0 ^% U" @$ X
3 t) P5 Z9 K# l9 R4 U ^( k/ O$ N. l+ z
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
4 y' J0 B) v! n }% K - <script>
2 e- Y. F* E6 c8 ? - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip9 b; `8 X9 p& ~" S
- var socket = io('http://workerman.net:2120');
* b4 Y. D! [% Q, v- A# p# w - // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数6 n+ V. Q% J6 h" ?1 ~$ j, Z m& K
- uid = 123;
8 G7 q: l9 ^9 }5 O% V/ C" | - // socket连接后以uid登录 J) p1 v" o: Q# s V% Q: Q/ j
- socket.on('connect', function(){
. [/ a# B1 k. S2 W; G5 \& f* e+ a - socket.emit('login', uid);
: i1 o0 k" V9 J6 i. i* j. [ - });* i. K/ a* l$ K( a" I; F0 o+ |6 {
- // 后端推送来消息时 K: R: `4 v: F
- socket.on('new_msg', function(msg){, t5 [! S+ U3 U$ M9 j6 F
- console.log("收到消息:"+msg);: m1 X, s3 {5 l/ F, I- F
- });' l4 ?- O4 W; o- Y! S0 x8 `$ z+ o
- // 后端推送来在线数据时; W7 L! q$ |2 t" P
- socket.on('update_online_count', function(online_stat){, [) X# D4 V' m! p( u( F
- console.log(online_stat);
- c0 d7 [6 ?4 U2 o/ L/ m" t+ k0 W - });2 u2 S2 e. N; m+ Z! p9 ^) ~
- </script>
复制代码 后端调用api向任意用户推送:- <?php
( f7 C) l% d3 u2 \. l - // 指明给谁推送,为空表示向所有在线用户推送( L0 C" V1 w# j" B* r" E M
- $to_uid = "";0 r- P7 Z2 B8 t4 B- Q8 s
- // 推送的url地址,使用自己的服务器地址) X% R" L/ E4 I0 \% I
- $push_api_url = "http://workerman.net:2121/";8 Q& [( e: _) e
- $post_data = array(
; w( _& L/ d7 a8 Y - "type" => "publish",9 q. R; T) x$ C+ a( B5 }$ n- Y. W, M' d
- "content" => "这个是推送的测试数据",; A$ g7 J! U/ l/ K8 D
- "to" => $to_uid,
' ~ g) `% E% ] - );9 D( U/ G& C1 k1 h0 `0 o
- $ch = curl_init ();* u5 v7 \& ], ?$ H0 ~
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );6 `# W' U4 \( u1 H y6 a# n
- curl_setopt ( $ch, CURLOPT_POST, 1 );
& h8 v3 c( n- b) ^! H" | - curl_setopt ( $ch, CURLOPT_HEADER, 0 );
s0 \2 d, u* I% u7 [ - curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
4 G( F* \8 d; g# d - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );5 w0 _; r3 C) o- ]' \
- curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
8 |2 u# i9 y7 @+ i& F - $return = curl_exec ( $ch );) j& j4 ^, u& @" n/ h; B: p
- curl_close ( $ch );
7 B2 w" K8 B B" t8 p+ Z$ Q7 o - var_export($return);
复制代码 3 c" M" j% i f
; W8 U% o# k% o H# G4 q1 J
2 B6 G0 W5 J: J' K! g: _, x0 g8 ^" @' z, I
5 A, {) q9 e/ f* D: i8 W9 r
本文摘自 https://www.workerman.net/web-sender* e) X% Q8 B2 y2 |
2 J% z" i# r w+ Z* l2 r' W& h
6 P/ ?# I1 g4 m3 w6 Y; c8 |, i# @
# l2 ^1 \% |: y
% h; y$ ~' t7 {2 `4 ~. x1 E3 E8 w6 G7 T) s( q