管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:9 K! z4 F. {' E
- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
* w& X1 }# Q9 F% G
下载WEB消息推送框架2 ^- h. ~8 j, n. B+ _8 i8 B4 T
. m7 q+ @' a2 p, V, q
下载19472次+ h! Q5 L& z' _/ m5 g
* ^3 P7 O/ F. w+ WPHPSocket.IO开发手册* D7 `) H1 y( [1 {8 d4 ~( c
5 ]4 W; Y" B* k9 ]PHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
8 } G% o1 ~, r- I其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容 4 x7 S! I, V" \
效果2:
) f0 P U: x' A3 @见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计 % s* \3 m' C7 d; z5 ?3 _7 H
2 q* q! s0 O0 t8 j安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
2 W: ~/ |+ g( J5 ~
; g- S$ I7 H6 ~. _6 N# c" H8 P$ J, a" p7 [0 a
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
+ D7 z9 ^$ R) l. z o( D4 }$ Y& r - <script>
1 t( h5 T+ T7 q- o8 G S$ a& o - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip! X4 n0 Q7 Q4 w
- var socket = io('http://workerman.net:2120');
" m' h' b* Y8 V& K - // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数, k/ d0 j! W6 o) _' S6 C
- uid = 123;
0 m' h% D& m. s8 L - // socket连接后以uid登录+ p! b+ u9 n- m4 ]' u3 R
- socket.on('connect', function(){
( v) |9 \, ` Z+ Y8 y - socket.emit('login', uid);, B* T' h7 \9 `7 H
- });, O6 S& M( t8 x, M2 r
- // 后端推送来消息时; B+ @6 E. p( X9 F) y8 B, G: N
- socket.on('new_msg', function(msg){( N1 \/ X( a" ?
- console.log("收到消息:"+msg);" }) M' y# y+ H7 L0 C' L. M0 Z
- });5 L- L, ^2 ]3 L4 ~) k
- // 后端推送来在线数据时
1 B! z1 C/ ^& A9 {% U - socket.on('update_online_count', function(online_stat){; \6 l0 J, u, ]/ N3 J$ N1 r2 u
- console.log(online_stat);! T% X( b( z. F
- });
( c) E. B4 H3 @- L - </script>
复制代码 后端调用api向任意用户推送:- <?php) ~2 @4 ~: g% P; q
- // 指明给谁推送,为空表示向所有在线用户推送
& e- x, H$ k$ a B# A: N# [ - $to_uid = "";
: C$ b( Y) H: }) j, R& A4 c0 f" a - // 推送的url地址,使用自己的服务器地址
) ]" B7 k) B4 [$ U - $push_api_url = "http://workerman.net:2121/";
# L4 |. ^; N1 I/ n% B7 E- P - $post_data = array(6 m) S. P/ h. J0 Y
- "type" => "publish"," Q2 X, s0 J" H) \! H
- "content" => "这个是推送的测试数据",2 Z$ r4 H, b% I% N4 e. [
- "to" => $to_uid, 6 P0 ~/ ^) {0 [5 e1 G
- );" |, o- f4 @& o
- $ch = curl_init ();& ?- A( v7 g8 P2 g& Z9 k
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );, j2 ]2 J: u* ~& h9 Y
- curl_setopt ( $ch, CURLOPT_POST, 1 );
9 A: d ?$ K0 k% v6 a - curl_setopt ( $ch, CURLOPT_HEADER, 0 );
& k0 Z& T% ^% l. [$ j' t, D) | - curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
; q4 V+ J# C; f3 j# ^+ M - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );+ j) l( i8 B+ g9 T& ]
- curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
* B7 _7 B, v; y2 N) ?8 t1 `1 R1 a+ G1 B - $return = curl_exec ( $ch );
8 F/ m' \2 B( f/ K' @2 G - curl_close ( $ch ); h% F% \) N# q m( o
- var_export($return);
复制代码 & ^/ N- Q# M9 q+ }, a) P' e% r
% k$ q* m+ V( z/ o2 m4 `$ I
! Y6 f; A R. a ^, g& f
7 B6 z0 B" I5 w d
9 p- ^3 ^7 W& i# z8 ?) ?# @/ P本文摘自 https://www.workerman.net/web-sender3 t* K8 [$ v' L7 @' \8 F
1 m; \! _. Q4 ^* Y1 T4 S( ]9 s& [( v6 j
6 H0 c# l: y$ w$ ~! o9 ?% ?
, j( T: o. A( s; J/ I/ g6 g9 |; f+ `! E0 c
) a9 Z- f) Y, f! x1 F2 v! R7 e8 \+ ^$ w7 c- l
?* w9 \0 p; \5 e5 a3 K9 H
( R2 F$ q# I! ?) w/ ?9 L; c& o* t/ f4 S7 M& @
& w4 b! I: G; J: [+ h" Y4 h6 ^
. h' v F' \; Z( V: _+ e, T) M2 Y# p: K+ [4 k1 M
|
|