管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:
4 o$ s' f l6 G/ V, ?- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
, U; f' p* S! W
下载WEB消息推送框架
4 j: e* c, \' c h! f. _8 I5 `& X/ h5 J v4 @" @, W
下载19472次
4 L9 G, W$ _3 J Z5 L# q, }# E/ u' S. H
PHPSocket.IO开发手册# g, m, z$ O, V1 c3 N
E$ o; @# ^4 v* L- r+ nPHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
; a1 Y: G) f$ T其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容 ' T" N; } y# p+ q: J% v0 s9 y
效果2:
6 _/ X/ Z. }. h: Q" m见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计 3 W+ h& e- D# t; R
4 G& g e2 h2 C4 l) Y) z
安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
]% I7 n# J+ z! l9 Y6 I c
3 }( | X' a- r* M6 |. V+ W% O
' L7 y" B- |/ ~8 ], F% a前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
( K- k" [. T9 ~; i - <script>2 l# J! W z4 ~. }- E U6 T
- // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip. k! B6 J$ S% I. T
- var socket = io('http://workerman.net:2120');
( y# P6 O: O- ^; J, z# {* w - // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数6 O. I% _2 h' W, y
- uid = 123;
# b/ s1 Z* z |) H2 o - // socket连接后以uid登录
* Y4 E" g, {' E9 e, { - socket.on('connect', function(){
/ b& H& h: i& y3 @( J, b - socket.emit('login', uid);
/ o% [! P0 K+ G7 h! C: Z - });0 S3 o8 u1 w6 f/ A( L; J: f# }+ a# o
- // 后端推送来消息时) V! ~8 c9 G8 {* ~4 Y
- socket.on('new_msg', function(msg){
?0 T6 N, @5 @, p5 G% ~3 g - console.log("收到消息:"+msg);, k$ f' l/ y" @5 ~2 R% b, ?2 P) O
- });0 o# {* C; v) V5 h9 R3 l8 V
- // 后端推送来在线数据时
3 T2 l5 v0 b5 T! v - socket.on('update_online_count', function(online_stat){8 m, t! g) j% }- N# {$ y
- console.log(online_stat);3 W- i, e3 O. g' N3 @
- });
1 X8 e! h' e" f1 O7 E - </script>
复制代码 后端调用api向任意用户推送:- <?php/ q% a3 d7 \: ]% l2 z
- // 指明给谁推送,为空表示向所有在线用户推送
- |+ l% X# |& [- q - $to_uid = "";. m% q8 b/ ~4 b2 c) N4 N
- // 推送的url地址,使用自己的服务器地址1 _7 h2 n8 |3 g% _' K5 _3 e$ G
- $push_api_url = "http://workerman.net:2121/";4 b& s3 i3 @5 n
- $post_data = array(
7 Q0 L" F4 J3 q - "type" => "publish",5 z4 s! V' M: B
- "content" => "这个是推送的测试数据",! R2 s. }3 o# V5 f. h( i
- "to" => $to_uid,
* F6 I+ ]& D `7 _% a7 @ - );6 p/ h/ g/ r: y1 T: [
- $ch = curl_init ();- ~+ E' b+ F' U) E
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );/ N& G+ ]5 A; {
- curl_setopt ( $ch, CURLOPT_POST, 1 );
2 U) @# F6 [3 g$ p0 U7 h6 W# ]( c - curl_setopt ( $ch, CURLOPT_HEADER, 0 );2 V; q8 {4 c* L* A* o
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
2 i$ u) h4 ]; a( m - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );* ?( B, c L8 ]1 `$ d0 q4 M
- curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));: K2 L6 o8 j: v& Z* x# w: } d- A' v
- $return = curl_exec ( $ch );8 ]! O3 z. X8 W6 q% L. a" i
- curl_close ( $ch );/ O" p# t8 v( v G1 B
- var_export($return);
复制代码
: ~6 l, j1 G* r$ d
" m" e/ d( j5 ?, T
0 y2 r, ^9 i! B6 Y' E/ f7 N) T" r' F) [" u1 t1 K
% `" |( s0 U- l1 P/ A
本文摘自 https://www.workerman.net/web-sender
$ y1 `1 A* t' J; x8 R4 T( ]4 ?# s" i) R/ L7 s" J! ~
$ T" H/ f8 i+ g/ T; s
9 J' V/ v% V$ t5 y
7 q3 t3 O1 I2 e( q$ u8 o2 `; S9 a+ ]4 d$ p! O) P
+ ]' @ b8 ~) x" i" m
5 y# f; B. _+ A$ P9 r0 C0 F5 ?! {( `
3 L* F9 ~- b# h0 a6 w% y6 a) o* w: P
7 W! V: G% z! n' p: G( ^: P) G" e8 ?& D3 f0 _7 @* u$ Y
8 Q" D- D3 p; Y9 \
; O. U. g8 ? C& ` |
|