管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:
5 g! Q) |' {$ _9 w0 d- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
0 r- S: q2 f3 e d/ l4 p
下载WEB消息推送框架. a! |4 v1 j* X0 k
. F7 \' Y z8 n5 T; O' u) Q2 U7 |
下载19472次9 o* C) H( P; M8 [
$ S% n" s) J- `2 n; V/ O# R7 n/ d
PHPSocket.IO开发手册
5 d# C, Z0 ^+ {
w0 c4 k+ x, u- |8 APHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content2 a g, @5 L8 N& u) K
其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
: N) Z* X. N; n效果2:
" C, D& h) K" R见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计 . D; F/ V3 f. ^$ W2 T+ q
" I+ [4 q. C, i; i I; h9 A
安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组) / J# [! X7 Q% p$ O: D2 S
~+ _' _2 S1 I6 |2 V! u/ [/ R2 f7 H. K
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
7 ]& K% G* H) B - <script>! z7 b" d, J- }$ C
- // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip1 c6 k i" O, k8 _
- var socket = io('http://workerman.net:2120');3 s1 A( F( ]( r. j% B( y3 ?. d
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
# w! O7 ^% h* n) L7 A$ r9 J - uid = 123;3 l( C( G6 d- {
- // socket连接后以uid登录
+ \( } H) o" x" F9 v8 J0 q [; p - socket.on('connect', function(){9 ~8 y. f2 r6 I0 Y0 Z7 P4 h* F7 |
- socket.emit('login', uid);
8 c- R5 s* c( C/ H+ m: l - });- f/ q& ^, a& J$ d2 ~3 V; h) W4 p' }
- // 后端推送来消息时$ ^7 b% `, h5 n% W5 \" t2 E
- socket.on('new_msg', function(msg){
4 s% L$ Z3 b2 [4 A( B - console.log("收到消息:"+msg);
2 X& d* _/ K0 k8 o# ^# } - });8 ?1 m. g& t- X, x/ s
- // 后端推送来在线数据时
: C1 U& t- U4 @0 N3 x& C - socket.on('update_online_count', function(online_stat){0 t% B, p% x2 L6 K, f5 Z
- console.log(online_stat);8 W. s( w( f7 i9 g& [ f
- });8 J" Y5 `) m4 p# B* @5 H6 o
- </script>
复制代码 后端调用api向任意用户推送:- <?php
' g' ?$ W8 g! f+ n& w. Y - // 指明给谁推送,为空表示向所有在线用户推送
" A( O' k4 O" T2 |* p7 H' c/ B - $to_uid = "";, Q6 w: K, K, w p3 j& y* h
- // 推送的url地址,使用自己的服务器地址0 _" l- f* |# a+ R8 Y z/ ?! w3 Z6 q
- $push_api_url = "http://workerman.net:2121/";
2 L' `- E' x; n; G - $post_data = array(
3 ~# H9 R0 I! V- ] - "type" => "publish",3 e3 c. |( h' f# }( o
- "content" => "这个是推送的测试数据",% B7 K4 z' O$ _
- "to" => $to_uid, % s0 T7 R% [8 t( [- R2 z
- );5 l( h& `+ E& f& p/ y" P
- $ch = curl_init ();7 L" K( Y. J" ?/ h
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
" D5 L9 ]$ J/ Q) X+ R - curl_setopt ( $ch, CURLOPT_POST, 1 );
5 \9 n8 M2 U E( z0 j6 f0 {. @0 q - curl_setopt ( $ch, CURLOPT_HEADER, 0 );0 z, u$ j- v, H7 B$ C, `6 o
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );1 h) \0 h/ V3 ]& r5 ~! h
- curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
, c1 Z _: b) K2 U - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));" M; J' W/ u( x6 R( _& c" u
- $return = curl_exec ( $ch );
0 x8 w0 D) ?+ P* e- ^9 F v - curl_close ( $ch );
! k3 t0 |8 k: G. n. f - var_export($return);
复制代码
* Q4 h9 M$ n3 ?0 R1 I% A) H6 V( v) f0 ?+ N: D
9 Q0 Y$ y5 ?" f& k+ {- {* ^7 a) W' @; f9 M& ?
U; {- E* A8 e本文摘自 https://www.workerman.net/web-sender
; V$ ]9 E9 ?! o9 m3 I5 V- g- I$ i3 A, b3 W, A
) m* a1 C1 J9 v$ s2 U
, D$ d! W; I! r# H7 ^& `
+ }6 q K" ?) {8 [7 {) \. W) H/ Y& L6 U( ^# C2 N9 ~% \' f& h
( s- c3 |( ]8 O9 G" u" u
; b4 b# Z8 x! `+ I1 j, i6 C5 x6 x5 S" r, F" ^
# K* {/ T# w9 O2 _# W$ ]4 `
5 c1 f* ^2 e1 z; Z
- Q: S7 ]5 e+ e5 N* q5 p" ?- P0 b# e% t& u% X$ P( d3 Y
& K3 a* l$ ~2 O" @ |
|