管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:
d- w- o6 _0 M! \- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
# z9 F1 w# j, t" y$ k 下载WEB消息推送框架
7 Q+ j( E6 i W% N M. @* U! m- `% @8 _9 f
下载19472次
9 d' T/ r5 ^' L. k
* k2 A; t1 Z: O& j1 b" TPHPSocket.IO开发手册
+ u: K7 m5 k9 N+ f6 r8 o! s! e1 _" K2 A6 K! L Q
PHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content; g% i- |. e2 }4 ?
其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容 & r+ A7 L: r- ^# c$ S i( Z8 a( I
效果2:
) B1 j g/ u. d C. K8 T见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
! U% G3 h- Y- j1 ~1 q% R$ j$ j' v$ |6 B, L
安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
, L5 K7 `7 m3 ~
& G1 }4 h0 q4 P9 w* `& K. f' R% g$ @: [6 C/ }9 Y8 b, A# o
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
/ S5 c% g. Q% _ - <script>
$ |1 x/ t5 t+ d6 t- K - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip7 ^( O9 Z; x& n" Q
- var socket = io('http://workerman.net:2120'); O. W' o" C. ], I' U% o
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
' d# h6 y/ {( S6 z5 J - uid = 123;- G8 n: u8 u" g2 o7 l
- // socket连接后以uid登录
6 ^% p6 {3 x8 B4 V! [; Y' }% P6 Y - socket.on('connect', function(){
, k- U! q+ x$ k( ?. P* M& u& M - socket.emit('login', uid);6 Z( |8 ~; d- s
- });- L% l3 w+ |9 L/ K
- // 后端推送来消息时
3 R9 W6 V7 W# v7 C# ^ - socket.on('new_msg', function(msg){; Y3 u7 X) a+ Y( Z% a
- console.log("收到消息:"+msg);
$ y6 c" D, p0 D4 M5 Y& P$ z - });" J: }3 T" R9 ]; r7 u
- // 后端推送来在线数据时 @' j; Z6 O, e Y6 ?0 C
- socket.on('update_online_count', function(online_stat){
. s0 M3 H/ ?1 L3 z* r$ L - console.log(online_stat);; f' U; `2 B, J1 i
- });
& }8 f3 k8 d" m2 A/ I c2 G# T9 H - </script>
复制代码 后端调用api向任意用户推送:- <?php7 V- B/ A- O4 ^; C7 |7 O* \
- // 指明给谁推送,为空表示向所有在线用户推送
; Q: `5 ?# t. J& G5 n* m: c - $to_uid = "";) [, j8 \) _5 K# {: Y6 S+ X
- // 推送的url地址,使用自己的服务器地址
; L( d% f# T) E% Y; |! K - $push_api_url = "http://workerman.net:2121/";
) V& q; \4 R% ]$ d) c9 J - $post_data = array(
# ^3 W7 m" b( k, |; x! o& r. S8 g - "type" => "publish",
# h, I4 n! H" K - "content" => "这个是推送的测试数据",
, w+ R" X; w+ f5 Y9 j: ^# Z - "to" => $to_uid, " Q4 |$ { W) x1 u
- );' Z' M. b5 \* \
- $ch = curl_init ();
( G+ q$ y, q9 V2 p - curl_setopt ( $ch, CURLOPT_URL, $push_api_url );0 H" y J# J0 n9 c+ w; L( e
- curl_setopt ( $ch, CURLOPT_POST, 1 );
" L$ s/ w1 Q2 D, f - curl_setopt ( $ch, CURLOPT_HEADER, 0 );
$ k4 }2 U4 k/ D. T" c - curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
8 a; m% x3 [# C1 P* z+ z3 M. E - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
( ]) [0 q2 F- T, G3 G: _# s5 t( L - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
& t) Z% ]- v' m( F - $return = curl_exec ( $ch );7 y2 M* w1 V3 |/ i* H' o
- curl_close ( $ch );& v& P" v0 z4 R. P. G9 C
- var_export($return);
复制代码
2 z c! t ^/ D1 G: W! ^: t- Q- t0 z7 `' r* _) [% X( I' s) x& H
$ u6 Z+ ?$ C4 G; v7 D3 R$ q" H
# N3 a8 W1 n, n7 ]7 K) }% F. ?' E# v
本文摘自 https://www.workerman.net/web-sender E+ I6 J, E5 j2 l, K
) {3 v u8 a" n" ~( r0 Z3 y4 U) }% g, g
% I# y: ?1 K) i$ D; a( z& {
& `8 V* r. G6 V& K; O
/ X5 h5 S# B( S7 B U. A, R5 k$ [4 C2 z* A, `" [
3 E5 L1 n# ?+ r1 A
7 _" \% K# R0 ~! M% @6 @
) V4 b) I/ ?* c
0 G; d+ z$ U- Z) M3 D( ^7 V+ A9 h( a d, u4 L
& g4 N- Q. y, K; V J
; H9 C+ V( o4 { |
|