管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:
( J2 s) @: C( k9 C- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
6 }* `7 k: ]6 t8 ^ 下载WEB消息推送框架3 A: O+ V5 w: i" f3 v0 w/ B1 h
/ R: d- j+ B! t8 |. P/ k) S' u. O9 }
下载19472次
; I( v% s( g9 ^; B$ Q- e
# n( I( q" C. a0 [' e# K0 F% r0 uPHPSocket.IO开发手册& K, o/ r9 M w+ z* Z( g
. e @* m4 P" @+ p1 _6 s' l6 b+ t
PHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
! E. G( h( F8 g" M( g其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
* [: w& v0 U1 d效果2:
9 Y# b- e o7 z, }见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
# [: ]: D+ ^) T* T1 \. C! a6 X) ]0 _7 \* E
安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
8 G9 M% Q( {* I5 ^0 Y# b; R: H
v4 }1 j0 V' a; |1 R
' A% B3 O' V3 D& X% q* Z- v9 Y
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
: G5 H$ b6 Z6 P - <script>; u/ E; ~6 g& o8 u
- // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
) O( s4 o/ [1 a" }# x( b - var socket = io('http://workerman.net:2120');; s' {2 d1 w0 n0 m: m3 m) K- r
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
. u* I" u' o X3 o" q% H - uid = 123;
. T% b* x7 l4 U$ ?( n9 c! K' C - // socket连接后以uid登录
' O& g1 G! u/ t/ A9 m - socket.on('connect', function(){3 a# N r. E6 w0 s6 R
- socket.emit('login', uid);
3 q7 U; u$ J0 k - });
# J' A% |: e( m2 c) | - // 后端推送来消息时9 P" k, T# e# k o+ Z1 v& ^
- socket.on('new_msg', function(msg){7 ?& ?; O& E& I
- console.log("收到消息:"+msg);( b/ p" K& H/ d _. v) Q8 _
- });9 u& Z |. F3 C
- // 后端推送来在线数据时. l- R2 T+ ~/ C+ o8 a+ {3 T0 k
- socket.on('update_online_count', function(online_stat){
% w. O. V' U% Z& ^$ d - console.log(online_stat);
# h! W& t5 C V1 T+ e+ d: I - });
+ Z/ I' w" i; O, v - </script>
复制代码 后端调用api向任意用户推送:- <?php
. g3 g8 {8 }6 r: D' _- ?: _ - // 指明给谁推送,为空表示向所有在线用户推送
; \1 G( Y3 q5 c3 t# e4 l6 j - $to_uid = "";% m# \8 u l( x. d
- // 推送的url地址,使用自己的服务器地址
& l% O* j7 K8 S3 w: Y- k9 [+ { - $push_api_url = "http://workerman.net:2121/";
- H0 [3 H& F G4 E7 R - $post_data = array(
' a* ~# t/ M0 I6 U+ ~4 x m9 r - "type" => "publish",
0 \4 ~$ ?& a1 z; z - "content" => "这个是推送的测试数据",2 X+ i! F. G$ N |2 E
- "to" => $to_uid,
a% Q' x) g2 J - );; v5 P, W( j/ X
- $ch = curl_init ();
7 g) X9 \& D2 m& T& p - curl_setopt ( $ch, CURLOPT_URL, $push_api_url );. e0 O6 I6 H: b( d, o" w+ H, G/ G
- curl_setopt ( $ch, CURLOPT_POST, 1 );
3 }( h- U4 W& r2 N- Z0 l - curl_setopt ( $ch, CURLOPT_HEADER, 0 );! U1 S7 G \+ s- D% `9 Z
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );/ L0 F% B7 J4 n6 K; k2 }& w
- curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );, G( |3 H6 F W$ b
- curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));/ T/ r( m. P. o3 A7 z( s s
- $return = curl_exec ( $ch );8 C4 T" w8 Z5 u
- curl_close ( $ch );; l- J8 L" m$ H! z
- var_export($return);
复制代码
/ i, A- z$ q7 s/ i& t2 S1 m
1 P1 ?. B1 R) Q% k
8 d* a* y+ ^7 x( y1 J1 n! \2 A" m" G+ M
" W$ a" ~ x2 B1 h! L" w0 }本文摘自 https://www.workerman.net/web-sender: W& [) o% e" |" Q, v! [& w
, y3 A9 T. J# G! Z* `' r. F+ I
; ?4 n9 u7 U/ e% g3 S! |* P3 Y
9 R. q& i5 c, Z3 E8 _; Z, s! `- e* K) n
% e6 Q* i/ s, v, |* z
3 e: | \+ g5 I7 Q! F' c% n
. ?2 j' b0 z# _( H" D5 Y) V5 j" N5 x- S9 r
0 v/ d3 g3 p/ K# _+ b3 J8 n" g% a4 o6 r1 B9 Y- b o m
4 d8 H1 E1 m: M: J9 n; v. x" E# r0 i8 Y% @4 m- k
- f' u, n2 E0 d8 ?4 Q% t# _9 F2 O |
|