接收消息页面:http://demos.workerman.net/web-sender/
推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
! X& [3 u5 ^0 q( y9 w; g其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
; L# P( D* i$ B, m; v _4 {效果2:8 t9 c$ c4 e8 W! ]4 ^1 k9 g& @
见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
& S# z! |9 ]" \# C9 Z6 z# O
3 \$ A# N6 U5 K5 a安装启动首先:参考手册检查/安装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; y+ W5 e$ A# ~2 ^
# K; ~; J6 Q3 C. L; H3 a( l# _% o* _) h/ X
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
; [9 v% C0 x- e - <script>
, a0 B) _$ f9 P/ ~8 U/ {8 n/ a- L - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
8 G5 V5 O/ h& r0 S - var socket = io('http://workerman.net:2120');
7 R! L# v# s" t8 V0 C - // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数$ m0 V0 O% [, d2 h* r( v' t* A
- uid = 123;
6 E+ `9 B- F. i0 M - // socket连接后以uid登录% v& @" u; R6 f+ Y0 P: r
- socket.on('connect', function(){
, G% T8 R/ ]6 m% v% E* }& f - socket.emit('login', uid);
7 z7 R( o' K6 H; r9 T' v# @ - });
2 \5 K: q5 s; o" ^+ M - // 后端推送来消息时! x0 b# d+ k6 s* T* J/ _2 B9 n4 ~
- socket.on('new_msg', function(msg){4 U9 Z) o- c: b0 D
- console.log("收到消息:"+msg);
6 k- p, R2 G# f' l! z7 ^4 j - });
& {# ?7 J: [4 N - // 后端推送来在线数据时$ j d: v" i3 }& c8 S
- socket.on('update_online_count', function(online_stat){
4 w3 Z5 s+ @. ]8 b) Q0 B - console.log(online_stat);- a2 p6 F, M1 @8 B
- });; S/ @: u! x! ? q. j
- </script>
复制代码 后端调用api向任意用户推送:- <?php: g, o. X8 p7 w+ H- R0 k( |- A5 h
- // 指明给谁推送,为空表示向所有在线用户推送
* |5 d" q0 ?/ K0 K( H - $to_uid = "";
1 u, O" m" D+ v% s; a3 U5 w - // 推送的url地址,使用自己的服务器地址
4 w4 n! @# K0 ]% v: }' t - $push_api_url = "http://workerman.net:2121/";/ b! p7 H) p- N, e2 k
- $post_data = array(
) V, E* D% ?% U/ { - "type" => "publish",
- Y* x" r/ r7 a u1 q+ Z+ o - "content" => "这个是推送的测试数据",/ i5 r" `) R- @, N
- "to" => $to_uid, : u0 S7 Z- c, Y
- );& |& }" c8 C5 f/ T( T t
- $ch = curl_init ();- O+ D# C! d, z1 J. s# n" T( X T2 q3 p
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
4 K1 c# c; ^+ E" T5 Q ~ - curl_setopt ( $ch, CURLOPT_POST, 1 );( l& S1 m. d! p9 F6 V- T# Q
- curl_setopt ( $ch, CURLOPT_HEADER, 0 );3 I! O- [. Z8 y, U" U! T
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
- ~$ R$ e) f: @% M7 r0 H1 C - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );) O& n) g: L4 @ E) O
- curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
8 _6 j: f( }7 U2 o. i - $return = curl_exec ( $ch );
, z( \7 k' e& N7 }. |6 z; n" v - curl_close ( $ch );9 H# [! U: O# I( |2 c6 I( F: U
- var_export($return);
复制代码
; Q* r$ N/ l8 {. E s( M7 I3 i# ^, n
2 k/ x5 U1 I' N8 m8 |# ^' V- j
' n7 E9 D+ q/ D' z- x4 ]1 q, d# a6 a0 {9 P0 z c: e
本文摘自 https://www.workerman.net/web-sender
: @$ i4 s1 r/ e( ~5 G, p( ^. n. C# e
' m: ?1 w& g7 k2 k0 ~" E9 ]
) n0 r) T, Z5 W) H; Q3 d5 a* T# O; Z
& D* x( o7 h' R6 z, z# ?" t3 [
# p# h( r z( A: c- Q( D7 m# _: u5 i8 T4 l0 K