接收消息页面:http://demos.workerman.net/web-sender/
推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
. G" G! F$ X# T+ F j9 V. [0 C4 F其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
0 Z+ x1 P! i7 v% P/ Y& k$ G
效果2:8 o4 B5 R! T4 X( M% G
见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
" [9 p, ~* {1 @0 I* t
, Q0 g1 |2 l8 P2 B安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
- h: T) l7 j7 g, V% A) @. z; [
4 u' X5 ~$ Z' @% I( Z
1 C/ m/ n) z( j& }7 `前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
7 a, z; ^; C" Q, @; D3 b3 p - <script>
1 y% C9 ]. u3 p: r - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
1 K( B3 L! W6 }! K( y - var socket = io('http://workerman.net:2120');/ |3 M8 n9 s* {4 u7 `0 W
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数2 }7 Z' V$ n5 d. U7 d& O# q
- uid = 123;
: X# O: J- s- \" E/ h - // socket连接后以uid登录
" A3 v7 k: R- Z - socket.on('connect', function(){5 w$ ]* L9 Q" h& q% f9 ~; W
- socket.emit('login', uid);, o5 Z( a/ c8 x) f1 G5 J2 q& y* ~
- });8 h9 m" q/ v! ]
- // 后端推送来消息时: V% a" C, S' Z, r# T, y8 p
- socket.on('new_msg', function(msg){
% C7 h/ y( r4 q { - console.log("收到消息:"+msg);- c% y7 ^2 B2 `& j' S
- });
9 Y, ?+ \4 N" A - // 后端推送来在线数据时% O3 L A! @; r0 d2 @- y0 O
- socket.on('update_online_count', function(online_stat){$ e" ^3 J, t* G' w& t% }! u7 q( q
- console.log(online_stat);" l$ a5 P/ d/ @: `$ L' d; D
- }); ?: r+ ~. ~0 \
- </script>
复制代码 后端调用api向任意用户推送:- <?php
) W" H k$ F$ M5 p - // 指明给谁推送,为空表示向所有在线用户推送5 v9 M1 B/ r- p% E, ~' |- Q
- $to_uid = "";5 t& B* G1 N0 W
- // 推送的url地址,使用自己的服务器地址
4 W+ ? c4 {; Y7 u - $push_api_url = "http://workerman.net:2121/";5 i2 J- C/ F" y8 }; H" i
- $post_data = array(
% d/ P7 n* v) L% t {- R# Z - "type" => "publish",6 h3 B; q; ]8 }) X" p( J& M% M% p: f' [
- "content" => "这个是推送的测试数据",. ~% v7 Y( x: P, ~. R5 h& q
- "to" => $to_uid,
; b( E- z; V7 Z/ E0 \: V - );& w h" f% Q6 w' \% p4 r- ]
- $ch = curl_init (); \; y7 E! `" \, g1 e7 \4 D1 ^6 g
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
# ?" X& t8 i* c" q L$ g* g$ Y - curl_setopt ( $ch, CURLOPT_POST, 1 );' \6 o8 b/ R9 G% r9 Z
- curl_setopt ( $ch, CURLOPT_HEADER, 0 );! m: J3 P$ Z7 ?+ A5 x. ^8 H
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
3 w, C5 P6 a. J. Y - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
. u5 N/ e1 B$ q0 ~* G - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
{& E6 T6 S: `- H4 _- D. B - $return = curl_exec ( $ch );
6 W* T) V% F9 ? - curl_close ( $ch );
- L" A- T- S% k# |$ z - var_export($return);
复制代码 6 A# T a& [ E* K X
+ G8 y$ f7 B/ s; d
1 ?7 F/ E9 y0 f2 \+ }$ N* e
t, i% g/ u* K, Y( u! _( S0 q: r# z6 e: u$ B; H
本文摘自 https://www.workerman.net/web-sender
9 ~& s( m3 l( ]! ?6 _: R/ `! @# ^5 t i
; ]4 e' H) d: T; K( N, u+ Z' u
* D# s7 Y: @8 Z& D7 {# u! E, a8 R& o" y
" X9 _+ [. y' z$ l* x2 W3 K9 V) ?' c0 L O( W