接收消息页面:http://demos.workerman.net/web-sender/
推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
W N1 Q0 F q$ M其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
M! i' w" g4 u( @0 Z' N
效果2:
% Z, }; v9 L) b% G5 s3 b见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
) n, i9 n/ y/ }5 B3 t+ ?& m
8 ?# t) O6 h4 m: ?5 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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
+ R) ~6 P( k& \1 h2 C2 x
- l, A$ n$ g- E9 W; m9 o# m3 D. e8 z* o4 f' V2 |
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
3 z& V3 z- k* c - <script>
; F/ j R5 b5 A7 u5 L7 i - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
% v0 b% V; j! I* c8 G2 q% b& l - var socket = io('http://workerman.net:2120');
3 F$ r/ [, C0 N) o6 E - // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数2 Q# Q5 Y6 s& ?" d# V
- uid = 123;
4 x" l0 p. p* X" F( r9 p x; G( m4 @ - // socket连接后以uid登录
, D7 ?+ O/ T& b6 s& S8 E - socket.on('connect', function(){; M. H6 ^+ U/ f2 m
- socket.emit('login', uid);7 b5 |7 ]# E$ O% ?! C3 A' r
- });
' F2 R* x: R" N4 C g) v: }5 ^ - // 后端推送来消息时& c& M4 X3 U: R; c. w) U6 g
- socket.on('new_msg', function(msg){
+ U, v D# K7 q$ ?# |0 H5 x - console.log("收到消息:"+msg);
7 n7 p5 ?1 i5 s) S+ S - });
' h. i0 P( R" J3 K! Q - // 后端推送来在线数据时& n7 e2 Y. r i6 g! U0 r! J
- socket.on('update_online_count', function(online_stat){
1 T! f: J4 J0 ] ]2 q" W0 Q - console.log(online_stat);3 x% T f- T9 v# a% N9 K* S
- });
9 s+ G/ v& a6 o - </script>
复制代码 后端调用api向任意用户推送:- <?php$ c- S- r7 ]6 R% O" l3 s3 m
- // 指明给谁推送,为空表示向所有在线用户推送
; Q1 ^/ }4 a% J- c6 J3 f z - $to_uid = "";
8 i$ z# l M( B8 B2 ~ - // 推送的url地址,使用自己的服务器地址" m' W) K2 W/ W: ]! t4 L4 {) I
- $push_api_url = "http://workerman.net:2121/";/ Z/ N3 G, M- ~$ N2 s1 F
- $post_data = array(& b+ s1 Q! u2 D1 f. M$ Y
- "type" => "publish",6 L' Z9 A3 u& u5 b; F0 u V7 E" x
- "content" => "这个是推送的测试数据",
8 i# k5 ~7 J% C8 y }& R - "to" => $to_uid, , B+ N7 x1 E2 {# y5 @$ T
- );
2 G5 r# K: i$ d$ p* h - $ch = curl_init ();- b' G- a m& M+ h6 w
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
9 g1 ?! x" a6 C* Q9 w - curl_setopt ( $ch, CURLOPT_POST, 1 );
8 `) p/ B ~! w5 M7 Y8 Q0 Y3 r' l - curl_setopt ( $ch, CURLOPT_HEADER, 0 );" f; [& h) A1 g, w5 @# m
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );$ c9 D( L5 \- {; F# S& W" `
- curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );. r4 D/ y9 T' P3 }9 i( i
- curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));5 y' ~7 l" }1 e) I
- $return = curl_exec ( $ch );$ @2 T1 u9 t1 Z& q" }% P
- curl_close ( $ch );$ Y, K4 ]. g5 L% @
- var_export($return);
复制代码
5 y6 v* n% \3 F4 l0 ?! h4 r' T9 z, k6 P6 R8 O
j" I* c/ N! T2 c
7 c, i7 G6 l' F0 u7 {& L
+ r* _1 Q' V* Z9 J/ _本文摘自 https://www.workerman.net/web-sender
2 t( ^8 q" H3 i2 |* p: G) p8 N- A6 w t# t9 N: C: q0 s6 `4 ~
7 O6 n& \6 Q* p. D2 K
, G/ B6 }2 a8 w/ r: A$ I4 h
" X) m5 h9 {) f. L/ ?# c4 e0 |, a& a% [; x
9 r6 B( N. G A1 |, S: A I; y