接收消息页面:http://demos.workerman.net/web-sender/
推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
. \; g! X; v# L0 o/ n# V- L其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
$ ?/ [, ?. x7 ^' f- s
效果2:
4 C n! r. R: S5 O: e见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
/ ~( C% s$ u) N: W2 V) a0 ]$ X* X7 d: {+ e/ l' t# [2 V
安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
+ t6 i" a/ t4 r s0 G6 W3 I5 a$ T
5 p2 o1 a* S3 c4 [
, n' K% @* u& q. N. T3 S+ y, l
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>( ]' N( y2 u {1 n' D/ g
- <script>. {7 V) [2 N0 N7 Y: R- X
- // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
5 ^$ t, \- Z6 r G8 Y - var socket = io('http://workerman.net:2120');+ z% W) F* B H( r# K
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
+ G' x" [& X5 O/ r5 }0 K, f - uid = 123;, y' a) t4 v0 D
- // socket连接后以uid登录, P0 u1 Y8 a* q8 G! l" t
- socket.on('connect', function(){
) |- F2 H$ z& N% Q8 n5 R& k9 E6 O - socket.emit('login', uid);9 J8 D/ z; P$ [7 f) U
- });! |5 F$ a( \# U/ d
- // 后端推送来消息时
( h3 J9 w7 K, u, @8 `" N5 Y - socket.on('new_msg', function(msg){* R8 Y/ m4 R8 U. N. q( O8 G+ e
- console.log("收到消息:"+msg);
7 Y9 Q [7 J- L- G% B* q - });6 i1 k5 u; G6 ~% w1 @
- // 后端推送来在线数据时
' C0 O2 c6 c8 f! u3 Y( ` - socket.on('update_online_count', function(online_stat){; F! f* C1 p8 B/ K' f J. T
- console.log(online_stat);
+ s/ V4 `/ e# [ - });
5 h' B' z' f W9 b - </script>
复制代码 后端调用api向任意用户推送:- <?php
$ i' _) B/ ]5 s: D: X - // 指明给谁推送,为空表示向所有在线用户推送$ |' F0 N& e. c
- $to_uid = "";" O+ B# Z2 M1 Y2 D! m
- // 推送的url地址,使用自己的服务器地址
3 w4 i* b# ^+ U: U# C! E - $push_api_url = "http://workerman.net:2121/";
! F7 X/ i, f) W+ o) c1 S - $post_data = array(" a! l, ^: r% H+ ?. K
- "type" => "publish",& b3 }, [3 ~& w, H) l
- "content" => "这个是推送的测试数据",# k2 B5 w7 i) `$ V# Z
- "to" => $to_uid,
' [* M3 p R0 C( ~7 L4 J - );5 C# F: ~, Z8 v0 ?+ S4 m/ M
- $ch = curl_init ();. c/ ]0 P$ e, z
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
: n6 `) b; _2 q. }$ g% @' x - curl_setopt ( $ch, CURLOPT_POST, 1 );- |& F' i8 A" z+ `
- curl_setopt ( $ch, CURLOPT_HEADER, 0 );
% K; ?8 ^! s: `& R! \# h' d0 | - curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
7 w2 Q. R+ X0 a* S/ X- K! X- o6 X - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
" X: v% [' X7 E - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
. }& {* f/ A" E& n, F7 h - $return = curl_exec ( $ch );
7 [) s: s/ E( R F - curl_close ( $ch );
3 H8 N+ I5 W" G: j6 u# { - var_export($return);
复制代码 + x( m( o7 ]7 b4 ~
3 @5 i5 h1 E" Z0 _7 `; O
4 ^( \* q: G7 {5 o
# T1 i x' b% c! R( o# {# @+ H' ?* ]$ X* \) A% |( d& U
本文摘自 https://www.workerman.net/web-sender! ^; h* u1 [0 x! C8 P2 v: {
& H1 Z$ q5 w# U$ }, T3 X, U& w3 a0 [7 q) a `
8 i8 f$ F3 ^0 e v# Y' R- S: |2 h6 y2 D7 d# G5 Z% v% M6 C8 C
9 i6 F9 G( s8 i9 p" s: X
9 w9 z" q0 x4 i. D