管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:
+ c6 g+ @+ T: A1 ]; y* e6 j- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
* V- Z$ n' d2 o" ]
下载WEB消息推送框架
9 a+ l7 I3 v: c
2 a" Y7 _- A+ \ 下载19472次
9 [# J5 g+ W% k9 J: g2 L6 F5 |/ M5 V. A, p
PHPSocket.IO开发手册3 u- t4 r: Q) T$ L, S
* H5 w$ ^( m% h1 ]PHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
|8 e1 |5 l7 y0 X) R# H% k0 Q其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容 2 c8 S# y( V, z1 @- _! p* n4 _2 t
效果2:* r z! Z7 M6 @. u! U# F
见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
9 H# m- s. s0 x1 k9 @" r0 r6 c% z' u8 u# \0 i) v
安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组) 7 W \& }5 Q' X
, w) b- p$ P- ^' K1 ~( O$ Y% \
1 o) w$ ^; b: l3 ? t' V J
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
) ?. ?" j! ^$ m+ q) f - <script>
5 X7 u% |; ~+ ^( A$ M6 i5 K$ l - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
; {3 A/ M+ s0 G9 f% o4 h - var socket = io('http://workerman.net:2120');1 a Y5 v, ~$ J6 |9 F" f
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
8 \- ~' F8 |4 s/ }. |/ }- b - uid = 123;0 I _( J& I! V* n1 i1 Z: O, h
- // socket连接后以uid登录+ ]1 ]! n5 W+ n( a. p5 P
- socket.on('connect', function(){: j. G: Y. x. N: N6 r) w
- socket.emit('login', uid);
# Y; u' Y/ `9 M! R' I- {* A - });0 g4 N" ]( S: Y% I( X
- // 后端推送来消息时+ o' o8 [; R* e. J4 }
- socket.on('new_msg', function(msg){' V% Q& [) j8 Q, g& B
- console.log("收到消息:"+msg);+ M/ G! x: |% U3 a7 t: I/ O4 E$ K
- });2 c% ^1 }' f% z+ X Y6 B2 L
- // 后端推送来在线数据时( E" A( Q' y* ~3 X, T" o" m1 W
- socket.on('update_online_count', function(online_stat){3 s% ^% H& o8 B) H5 G+ h) K
- console.log(online_stat);# P" ~4 C, p% S: k) `7 `8 `
- });
1 Z- L% N( [9 a4 V2 j8 o - </script>
复制代码 后端调用api向任意用户推送:- <?php7 b- k/ d& }; O" v# F
- // 指明给谁推送,为空表示向所有在线用户推送+ g$ H+ t D; t0 ^- |
- $to_uid = "";3 d8 g1 W' N+ ~# f
- // 推送的url地址,使用自己的服务器地址
1 J$ |- f, @* {6 E2 C' ^6 `6 S - $push_api_url = "http://workerman.net:2121/";
% l9 x5 r" t+ M3 Z - $post_data = array(; U' S6 I& ^; w7 m! F
- "type" => "publish",9 [: }; L9 [ v# B a1 b8 {
- "content" => "这个是推送的测试数据",
: F* j7 R7 i$ Q3 x8 x$ n, T( H- P! C - "to" => $to_uid,
8 r. G$ v6 F0 F T - );
( F9 \0 x- D) B8 D! ]1 p - $ch = curl_init ();0 C$ E" J/ } Z$ J
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
" L2 a, s3 L9 F$ d - curl_setopt ( $ch, CURLOPT_POST, 1 );4 o% Z- ?' B& E7 _7 X$ D" D0 O& W
- curl_setopt ( $ch, CURLOPT_HEADER, 0 );- j; \" s- ]: M0 w6 ]
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
7 I Y: [# y: i3 g |. j - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
& A; w$ N" x% ~+ m" D+ t - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
/ C! M( ^! Z) o. p, M, e$ ] - $return = curl_exec ( $ch );4 X1 E. j# E- M6 j2 J: T1 q
- curl_close ( $ch );6 e2 f* H, m. v4 V* |2 s
- var_export($return);
复制代码 5 e# B# L4 Y3 Z! W) J1 v2 H. d* x
8 T" y8 K+ S' T% c( z' x/ V( @7 _; l
& _* s6 \/ Y5 z5 W i) d+ y% K, t9 G" M; s% F' L
' \6 Z% }: T: e. ]7 Z本文摘自 https://www.workerman.net/web-sender* I8 W. y, a2 I7 N( I
; B& f# A3 a' v) y" n6 ]
8 k" A. H8 O7 I a: o7 c5 ?. X- d8 i2 [, |. L
y1 O" {% q4 W+ |) |1 Z" X: r1 C5 B* |
3 r' A1 }( A0 e7 n- X
! h4 `! H+ l) T0 W1 ]% G$ e3 Q2 a( h& A' N/ {9 T
! l6 i, ^3 Y+ B' Z9 b% F0 H
. f" L8 g9 W) g- `5 n% O
( t A O; I7 u$ n/ u0 O) |: u. Z- [$ `* ], r
! m) b' K: q# x1 A& {9 F4 b# T. U1 r
|
|