接收消息页面:http://demos.workerman.net/web-sender/
推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
/ _6 t! M8 L A; v7 O5 P2 G其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
' _ o* Y1 `) y效果2:1 B( V4 i7 h; o0 n) ]8 c( @
见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
8 {/ c$ [* U' ~4 E) o' C. s
* _" Z+ N& } R& 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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
& f5 K) g# P2 ^$ M9 Q
, m, z1 S8 x- e3 n6 Q) l) M/ x& N" U
& |3 G, x- L _8 X
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>8 a! m7 w8 P# R7 @
- <script>
! D% k, t. f) D2 F3 t/ T; v/ g5 W - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
6 `& w5 V6 |3 m# l5 u: C - var socket = io('http://workerman.net:2120');5 P9 c* G) m* I% z# `& T
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
. m1 T% y7 l" V. d4 E! R! A) |* Z - uid = 123;
) x, Y# S- v6 |" r/ [' \! s - // socket连接后以uid登录& I1 e. I; X' e
- socket.on('connect', function(){* R8 A5 M% ]$ Q& J
- socket.emit('login', uid);
" G; T4 H- g% o: T2 g1 f - });' B/ E% V1 d' a9 `; w, [( _2 h' }. M) U
- // 后端推送来消息时( j& B1 e/ p8 \* u" A) Q
- socket.on('new_msg', function(msg){ q4 Y& ~2 h4 C' I
- console.log("收到消息:"+msg);
4 {8 y0 o& `# N2 |7 d1 |6 ` - });
/ H0 h4 b" t. [5 m# N3 Z% r - // 后端推送来在线数据时
, n3 ]" {$ P$ A5 `, t - socket.on('update_online_count', function(online_stat){
: ~% C/ N. g. g+ J( ~ - console.log(online_stat);
2 ^; d7 n, @# S4 z5 A: G" `4 G6 X - });
; ~8 x7 d) n# O; `7 ? - </script>
复制代码 后端调用api向任意用户推送:- <?php
5 M4 e) r" ]7 e! L C. D' o - // 指明给谁推送,为空表示向所有在线用户推送
. S/ [% J3 [9 b: { - $to_uid = "";( N5 s8 t' V( l6 v& H5 I
- // 推送的url地址,使用自己的服务器地址
! N- |( D& l3 i4 K- k! V6 w - $push_api_url = "http://workerman.net:2121/";6 M/ Y8 j' K: y; }0 K
- $post_data = array(
4 K# ^1 Y8 u1 Y) o& _/ [# Q! [) ~ - "type" => "publish",
4 l3 C: Q! z' J: L" w - "content" => "这个是推送的测试数据",4 }5 b' r0 a. O
- "to" => $to_uid,
- i9 r6 n6 ~3 k$ s) o+ L - );
6 C4 [( ?* X0 f# F+ j- Y2 d - $ch = curl_init ();
* f6 ]0 S' W1 b - curl_setopt ( $ch, CURLOPT_URL, $push_api_url );" E1 Y1 Z6 X" Y
- curl_setopt ( $ch, CURLOPT_POST, 1 );4 ? }, P# [9 s. a
- curl_setopt ( $ch, CURLOPT_HEADER, 0 );
9 w+ r8 B% v8 G2 ?$ s' A - curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
, z/ \( a; `, i - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
- _* t/ y& Q+ x8 q. I& C - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
3 F4 T1 X6 L+ Y D) r - $return = curl_exec ( $ch );7 t0 Q2 d5 F5 ]. R$ j% Y
- curl_close ( $ch );( I: a* A8 V: n. Q! _4 s
- var_export($return);
复制代码 0 @; P; _ G9 g+ l4 d( d
( S/ l. A' ?# g8 L' O0 @
& w4 ], ]! p$ ?2 \8 w
! L/ Z, J8 }7 w5 M) {
3 Y- g/ x& ]6 w4 n( M0 U本文摘自 https://www.workerman.net/web-sender/ ~1 {8 V. m8 T P/ ?& ~
+ N) J$ O G: z1 } J+ a5 p6 F/ y W( W# T
8 `$ T0 w3 \: y l- f: I% D2 ^* v2 q' z! R- [
$ S/ p- v: _" G1 K& t
0 u: J- {) l5 f7 L