管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:, X q/ C4 o z1 ^. d: o& J
- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
+ `$ G( q" l X) R* H* L 下载WEB消息推送框架+ C. C0 J( `2 \1 I! z) |
, `# B5 T5 f o8 ?1 z
下载19472次
( _9 x/ f) F) L1 Z$ o9 z) L) L& \' \- x$ x1 X2 L7 x
PHPSocket.IO开发手册
* R" U% B6 a+ F5 ~ ~
4 j$ f0 E( w$ \% I. p: YPHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
/ t8 A3 z( q, @. ]4 T$ F' |其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
6 c0 S5 p9 G1 w1 _9 {' t8 o效果2:4 d- Y! M) ^; v+ e8 r
见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
0 c1 }! K2 ~" K, U7 y# L
* ~7 F, l5 d/ R安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
% ?7 D7 T* ^2 K+ A' O( C, K
" A4 H! [( e# g5 \$ T
& z7 X* x9 V1 u( J8 k9 x前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>! E9 N1 K6 O T8 A4 T$ i
- <script>
$ [; ?- w& j3 n% [ - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
3 e! s- y/ l x% N/ R- ?( Q5 g( f - var socket = io('http://workerman.net:2120');5 _) ~; W) I3 ~5 P& r
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数* A& P3 }# z! a/ l6 j; t
- uid = 123;
' M s [! J2 i. H; q$ [* M$ P - // socket连接后以uid登录
- N' Q4 O- E z6 z8 h - socket.on('connect', function(){) h, y8 `. P$ x) J# s
- socket.emit('login', uid);
- j0 x& E: P# X; x' X" _2 E - });9 W! i& p# ^6 R4 c' {- L7 t
- // 后端推送来消息时' ?/ q' Z4 j, M, G0 Z. k9 o/ R
- socket.on('new_msg', function(msg){+ {( V6 w% ^5 ~1 k) \; k' y
- console.log("收到消息:"+msg);2 M3 _( j x* {: _8 g9 n' g" \
- });, V% E+ g9 R& A: p0 o
- // 后端推送来在线数据时; M& ?+ W, X5 f. t6 b$ W
- socket.on('update_online_count', function(online_stat){
, X( ^& L2 n8 E9 [6 `4 w# H3 Y - console.log(online_stat);
1 _' ^; }* M: ?8 W0 R2 S7 l - });
+ ?5 C9 k6 @+ @, \8 S2 U5 u' [ - </script>
复制代码 后端调用api向任意用户推送:- <?php
9 w1 r& s( L: H r - // 指明给谁推送,为空表示向所有在线用户推送
) I9 ~9 N1 Q4 s3 y+ I - $to_uid = "";
1 q0 N# N$ \. b# a, h7 G) Y2 P - // 推送的url地址,使用自己的服务器地址
7 z& T. c! n: b+ O/ e7 Q3 f - $push_api_url = "http://workerman.net:2121/";# M! W: [+ L& T2 L4 W2 I5 @( ?1 P
- $post_data = array(
% V( p' P# v; }8 U - "type" => "publish",- N G% S1 W' d; p: n; r
- "content" => "这个是推送的测试数据",$ C6 o$ P+ b6 D
- "to" => $to_uid, / {0 ~2 |6 n1 P
- );! h( H* a# f" k. Y& u; |8 R7 T
- $ch = curl_init ();% _* |2 M5 t/ |' K% I: n
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );# w! M+ k, k5 z+ |# X
- curl_setopt ( $ch, CURLOPT_POST, 1 ); j" F8 O( g, [. i
- curl_setopt ( $ch, CURLOPT_HEADER, 0 );& U/ w! s6 a" {6 J5 H- l+ }% l5 u
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );* K+ G: W, S6 b ?- h5 M) q4 S
- curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
; m) {- [: s# y, j3 f - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
( q3 o8 U5 M1 R8 o+ k/ L" [ - $return = curl_exec ( $ch );
% l. V7 K3 _7 G" I# }# A - curl_close ( $ch );
: x7 f9 ^3 \8 U/ L - var_export($return);
复制代码
( H7 Z9 M; l1 H$ b0 x0 l! c, T; m0 X/ M- l
' J* H2 p: r7 [+ Q J5 [
" E' @3 N2 U! v: C
% h, B2 x+ x [$ t6 L0 I本文摘自 https://www.workerman.net/web-sender) ]# ~9 T- K* e) e4 P; h
/ x0 t9 b4 _- Y X' B
$ f; [* \9 C& y4 Q) h9 {/ B
% s) b. ^+ `% S% {) ]
! ~6 E @/ V; t3 a+ l, C8 @
% P0 `4 n6 ]- a4 ?
; c+ Q6 i: u) i. x" G/ ]. d# L* \7 B
8 j5 s; i- P/ u1 l6 O0 _4 o" |$ _/ p7 T! J1 L: {- C
* y* ^' v6 L" E8 {- d% x
) Q' B' h3 h* p5 F: s2 \
6 {# `3 i% Q5 A5 v! Y( b$ v
' S* H1 I) g r; o
|
|