接收消息页面:http://demos.workerman.net/web-sender/
推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content7 F }. r y) O/ E4 O3 `$ i' n
其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
( J* E8 ^7 C; @% U" R
效果2:( u' {$ W! P) t! ?' S6 M# l$ x2 u
见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
1 E- R" n" d5 i1 F
. [: x% @% P! G& @2 I6 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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
# ~/ m B) `" N( w
1 \0 C3 I- ~6 X. D! z4 y" `+ O; K$ r4 ]8 d' y: ?% F9 D z* c3 [
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
( a: f9 Y% s3 j1 o# f) B, T - <script>
! o! l: b7 k. L7 n" o# _, f' q - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip) W5 f, e: ?' b8 P0 l$ q
- var socket = io('http://workerman.net:2120');$ H) g2 a5 C. Z" ^ J( X9 C
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
q% M$ ^' l; j) F - uid = 123;% h; W6 l- O/ q# L+ c
- // socket连接后以uid登录
, Y$ w+ o! x# G; e2 ~ - socket.on('connect', function(){% L# \/ N6 Y2 \8 @# w
- socket.emit('login', uid);( K% |* x4 M8 H
- });, o' R' U- p* m* C
- // 后端推送来消息时
: z& ?! q9 X; `+ D1 n+ q( T - socket.on('new_msg', function(msg){# Z& X0 ?8 @3 H: x) J% W' s
- console.log("收到消息:"+msg);
% z7 {: R5 t8 @, u q" L - });
( s& e: [2 `. H7 Y; M- R - // 后端推送来在线数据时- i$ @& z$ }. L) X5 n/ C
- socket.on('update_online_count', function(online_stat){2 T* M) L, [# l: b# L) I
- console.log(online_stat);* d2 M& `/ X- y3 Z7 M. f( T
- });
+ D2 O. u, {9 ]/ p+ X - </script>
复制代码 后端调用api向任意用户推送:- <?php4 y/ S% ?' C4 q
- // 指明给谁推送,为空表示向所有在线用户推送; i/ ^8 V0 w7 [# g; w& L! N; M
- $to_uid = "";! ]" K5 U0 N2 M' `. l- E
- // 推送的url地址,使用自己的服务器地址4 I0 [9 h- `: {, F! f& }, j
- $push_api_url = "http://workerman.net:2121/";) V) [% M* t$ p7 b. T
- $post_data = array(
9 n7 b. S* n0 }0 I$ u6 e - "type" => "publish",: ` H+ F$ N& d
- "content" => "这个是推送的测试数据",
0 f( D6 m" j# t4 U - "to" => $to_uid,
: x" M. U, W0 x& @4 Y/ \* R; l - );9 b3 |- x& t- \2 B+ r
- $ch = curl_init ();
8 ]0 Y+ t- ?% z9 `3 f: ~ - curl_setopt ( $ch, CURLOPT_URL, $push_api_url );% L# I, t! k8 z3 H. {: }! t9 q, \+ G
- curl_setopt ( $ch, CURLOPT_POST, 1 );
' Q8 z! i; @' d4 W - curl_setopt ( $ch, CURLOPT_HEADER, 0 );
6 Y. P0 J$ j6 x6 B- M2 B$ M - curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
F* ^% U9 l( @0 o3 ~5 i; E( [ - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );+ I0 x: R7 [8 X" ?! P! c
- curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
" k. z2 t3 Q# D$ n! f1 f" D, X% u) m - $return = curl_exec ( $ch );" y8 `+ A- r6 V [1 ]
- curl_close ( $ch );4 m8 ~8 g3 x* a! @0 x6 d `6 u
- var_export($return);
复制代码 & x/ X; r! y" i* Z5 b" A
N {- p, b! c7 R; S; \
, o# U: m. U7 s8 J& c: T i+ T% U6 v/ O5 w1 i
; Q: n% J J- C) a9 v; N$ J本文摘自 https://www.workerman.net/web-sender5 [0 v% H. i0 R- Z( X# r
) G- A9 n3 a" e7 a {8 n6 ^1 ?+ D. E( f0 m
. w' E s" f5 U: `: y6 W& w
) r& h4 i' Z9 Q( v3 G9 V# ~. N+ O
8 G3 s+ q A7 p, L+ \- N; Z
6 X7 b a: Q0 z3 N! g