接收消息页面:http://demos.workerman.net/web-sender/
推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content0 l1 l+ a# I; \% Y! |
其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
2 l! l5 |* m t# ]9 X& \效果2:) m& |0 ~/ H/ G3 d6 D8 z# F- S
见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
5 j9 v, I' g7 i; ~+ b. ?# s4 B0 x: Y2 u" P) [# c! X
安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
, Y9 r d) C$ U+ d9 B! q
+ ^$ Z/ v/ e0 V5 e* n, C
/ R1 f, |! t* z2 T8 [# B8 p& }
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
8 G, v# T# I3 W- c* k/ ~4 F - <script>4 b! w6 p" M% I( J4 B5 R# I
- // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
* w0 u4 }& ~: w0 c( J; B - var socket = io('http://workerman.net:2120');- t- n" k, Y+ V1 q; |6 r
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数7 q" i. [6 H8 L; H' N
- uid = 123;! j. F; ^" f0 \7 F" K' C; X9 Q' i9 Q
- // socket连接后以uid登录: g) s6 ^7 W1 F9 G4 w0 x" {
- socket.on('connect', function(){
1 P1 ~) r" E6 e4 l2 S, d. I$ I - socket.emit('login', uid);0 t W7 M. e- s8 h$ U1 l
- });
$ l. C7 T. w% _$ t( P8 P9 s$ U - // 后端推送来消息时
9 \, G# O6 H' A$ l - socket.on('new_msg', function(msg){
9 ?$ [' t+ s: F/ [) D5 A! s9 d - console.log("收到消息:"+msg);
4 ]7 N6 o5 ] j$ h+ E - });" x/ E4 ^/ P" C- u
- // 后端推送来在线数据时
3 B- H+ @' X( v1 X0 i1 a - socket.on('update_online_count', function(online_stat){
% B& a' a- i7 V9 M - console.log(online_stat);
& O' s0 q2 p% `# H/ b: q- s - });
- H5 U7 R6 z6 I6 L) ]' t. b; _ - </script>
复制代码 后端调用api向任意用户推送:- <?php! q* f: f0 E: C+ ~) W7 _; V, S# d
- // 指明给谁推送,为空表示向所有在线用户推送
- g [" `) q( i, ^' a - $to_uid = "";
* V7 }2 `4 D/ R0 W4 Z8 k) G - // 推送的url地址,使用自己的服务器地址
. P9 S, B9 @* A4 y$ t* t - $push_api_url = "http://workerman.net:2121/";5 L! t) o' Q) M4 i' o) ~/ L% e
- $post_data = array(+ J) Z& {/ g: e
- "type" => "publish",
1 M* ` `$ f4 U* i$ X! A' z - "content" => "这个是推送的测试数据",4 [- I6 E) Z7 |2 v( G8 z+ F
- "to" => $to_uid,
, s& Q K/ R m; J - );
: v& x6 \" r6 x; { ]- F. c - $ch = curl_init ();
0 t1 D/ y! r X+ r* c$ h - curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
4 g) F8 P2 r, e2 z. b/ P - curl_setopt ( $ch, CURLOPT_POST, 1 );+ f7 ]0 v3 j. r/ V/ S9 J
- curl_setopt ( $ch, CURLOPT_HEADER, 0 );
: n6 ^! v( o6 F+ l! [2 u. v3 Y - curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );) ]% v; g8 g5 E$ @, E, O! c+ c8 f
- curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
; s: e2 S1 j7 N' I0 J) m4 s' l2 h0 g - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
* l p4 I3 N( e8 ` - $return = curl_exec ( $ch );
' |; C6 h! e5 K9 ]1 s5 G# F4 F- | - curl_close ( $ch );# Y1 c6 H! H2 r9 W0 e- {) \% }$ {
- var_export($return);
复制代码
Q. }; f' ^0 Y5 v, h$ S$ L0 q$ i: ^! K# E5 t# E9 |6 x- |
! k4 g7 p* u T' G+ ?& x
& K% _6 O8 j; I* M' ^+ m% c. ], K8 d( L/ T% z
本文摘自 https://www.workerman.net/web-sender, J: D# v- h& A- [0 m! D- j7 L
' {: l* ?( @ ?8 U4 @( m/ h8 ?
6 N7 i) T2 ~8 h
9 E0 H: C0 S0 O/ A! [" L: l( i& I
6 N0 B( ]0 z7 g- D* N" S& I# f
- n7 s! i" s( U9 D3 z3 g
! c& k/ N" c* E