管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:
- Q7 f/ K$ {) W# A- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
2 ^0 c9 b, ^- M; }" g( i
下载WEB消息推送框架
$ }3 Z% n$ e3 O! } A3 o7 ]0 g ]) Y; @! Y
下载19472次- T U) @+ Y# g! P7 I
' b' W( N( h. s! ] ~
PHPSocket.IO开发手册
3 V! P5 ~$ S0 g/ o- `: t" c5 p' B5 H" ^/ _, O# Y) L
PHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
/ [$ W7 n5 M1 O) C6 `2 y其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
5 V, ^' d9 E, z, e+ ?- ~2 o! A效果2:/ }/ p$ h2 @' |& u
见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计 2 y( U" \% u% i( C; O
" s1 ^& v$ U7 ^& F2 j; i+ {. 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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
; g( S4 ]2 }5 H! K2 z3 V, _
; _0 _5 ]. C" N9 O) v
' {2 @8 D# @6 q h/ s" {前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
+ F+ [( O4 E2 B4 U! {1 _% r; f5 U( B - <script>6 i1 l" `. I3 v6 }7 a
- // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
9 j. D# C8 ^* M5 u/ n7 b3 C7 s - var socket = io('http://workerman.net:2120');
# j2 m' Y1 T$ p) [) K+ E( d# V+ H; C - // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
g8 ?- ~3 _) h- Z& q) M - uid = 123;
# } {+ Y) U( [6 O - // socket连接后以uid登录
: C+ v- c: N | - socket.on('connect', function(){
1 t5 b* s A8 `$ ]; @, e0 J: o& c - socket.emit('login', uid);+ I- ~+ i3 i7 f2 Q; K3 k
- });
" M2 I- @+ c! m/ U - // 后端推送来消息时
7 U7 Q* n) W; \3 Q - socket.on('new_msg', function(msg){$ R8 y: t \5 o0 X" Y
- console.log("收到消息:"+msg);. D2 M+ v3 Q4 R$ }4 [
- });
E) b2 g/ ?! M/ U3 b2 Q4 L+ ?% J+ g - // 后端推送来在线数据时
8 t/ ]# ~( ?7 t/ v$ D0 b7 } - socket.on('update_online_count', function(online_stat){2 T2 U; ~' }$ P5 T
- console.log(online_stat);
. a" K; l8 `% u6 S. A - });- T- \6 u/ q2 `0 m. @
- </script>
复制代码 后端调用api向任意用户推送:- <?php
, W; y0 \3 F% Y- Z0 u- }# o - // 指明给谁推送,为空表示向所有在线用户推送: ?) k' o" J$ F* u& r: }
- $to_uid = "";7 m8 v1 a+ Y# B9 M5 y' d
- // 推送的url地址,使用自己的服务器地址
8 k# {4 d' P% D5 q8 p3 m9 _2 K5 s - $push_api_url = "http://workerman.net:2121/";. e6 T. N. Q3 g6 T0 k
- $post_data = array(
" }6 m+ L& b7 M g2 G - "type" => "publish",: l" O, a7 k( L
- "content" => "这个是推送的测试数据",
4 a9 O: V( U& L, I+ ] - "to" => $to_uid,
7 B7 q6 w- ~, }" v; Y - );
1 f3 V6 H) d) U - $ch = curl_init ();4 ^: \3 M8 Z. k. K1 j
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );" e2 V' C" { ], L$ ~+ f* ?8 H+ ^
- curl_setopt ( $ch, CURLOPT_POST, 1 );
* ]6 h" `5 r: n) V - curl_setopt ( $ch, CURLOPT_HEADER, 0 );9 d9 U8 U* X: }, z$ i8 ~+ j
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );, _, D* }& [' a% x3 R t' b
- curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );3 `9 m" W: \( D. d- x) C3 D: [
- curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
( b; g: y/ o1 M% L: a7 J - $return = curl_exec ( $ch );% T$ f9 o. m. A
- curl_close ( $ch );
3 }. K, @, n ` - var_export($return);
复制代码 - R. C+ O2 u# G2 d/ ?+ W
: l3 F) ]- l" `0 [7 ~: X1 M8 b z
9 {! ^7 n6 T# j7 L* j i% ?
0 S x6 w9 _+ v! }0 y% K T) I0 C3 s5 a' P
本文摘自 https://www.workerman.net/web-sender
/ T0 U! w7 O3 p s" c, r: L0 O5 n0 \1 [7 |& Z6 H4 N2 j$ x
7 f$ o/ I8 n! N8 G4 z i* _6 b: O3 K, n& F7 V& E1 f# c' Q& C0 { G
5 Z- _+ {6 s- K" b/ n7 A$ d8 h( u
9 A) M2 d2 Q1 J" J
' N1 {$ W* T P
- B0 m! ^+ }7 E, B9 s2 o- [
- f! ^3 e( \8 F( [. ~. K( F+ ?" l4 ?5 z
3 H6 x; Q) V( H) @- U8 l3 y1 P
0 }* Q. e/ ]6 }5 H9 t+ O
* y, S& {# }$ F# W, w# Y
+ j% l; k7 x" u7 n- `# j+ m! F: e
|
|