管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:
) M; P. ]3 K, E. D- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
* }& |2 K2 r; J& i- z' W 下载WEB消息推送框架
/ s& Q- R1 G# M( ~& D
2 @& }* [6 v6 R" g+ w5 ~( ] 下载19472次. u$ D, g# ~$ K3 L
+ k4 O; ^2 c# m# Q5 ^PHPSocket.IO开发手册0 s" t% g3 e: v
( b( g9 u U6 R ]; Y5 [PHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
; i% E% T' H9 X' C, N其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
# g+ p9 W d: R/ ~8 x( v7 m6 \效果2:$ {9 h" h0 t" U1 g1 |
见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计 , l8 r( h# Y# Z) B9 A( o
2 v5 c* [* V5 @' C安装启动首先:参考手册检查/安装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 {) U2 v& e5 |. E& j
1 }1 P, ^' V4 L# _: h( w3 |
' v+ J j8 e/ S
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>- z( {! c5 z1 F! g
- <script>
% w$ d. d2 J3 l - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip. U- p) |3 e: R \& Y* B: H
- var socket = io('http://workerman.net:2120');; D% W0 @" D9 H
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
' t& f- s& m' l3 J/ @+ R - uid = 123;! P; p6 B F8 I- y7 t
- // socket连接后以uid登录: N+ X/ P& E; o! k3 P, l
- socket.on('connect', function(){
& G8 ~8 n2 g* X/ e7 h! n& y - socket.emit('login', uid);- B9 Z8 D4 a6 L# i
- });9 t% f4 j. X% | C9 n7 j3 s
- // 后端推送来消息时
; a& p" c. Q2 K8 O. { - socket.on('new_msg', function(msg){
# i2 Q+ h% [ K# ~7 U& O* y - console.log("收到消息:"+msg);
) \9 f9 }0 X0 o" ]( C7 D - });4 N6 t' J: [2 Q; J& _/ ^7 H
- // 后端推送来在线数据时
. v6 [5 e! Q, g& Q1 j& L - socket.on('update_online_count', function(online_stat){
7 c" d& D5 C2 ^ y; u: l9 f! ^+ F% Y - console.log(online_stat);
7 C P$ A& N, w8 A* S- v$ } - });
/ Y _* q/ s6 T - </script>
复制代码 后端调用api向任意用户推送:- <?php
3 {* U% L5 j+ d3 u2 S - // 指明给谁推送,为空表示向所有在线用户推送
( P9 w2 T/ e" f' a, n4 b2 T* P - $to_uid = "";4 ]7 ]* w d* R2 g
- // 推送的url地址,使用自己的服务器地址% m! p: W! M! l% c7 k$ r
- $push_api_url = "http://workerman.net:2121/";; _- r* k4 U5 g' c2 C' o; s
- $post_data = array(1 e) y, L7 K1 x% k0 E# D( B+ Y
- "type" => "publish", c' L7 e! ~" l# ~4 u
- "content" => "这个是推送的测试数据",( G, ]; A6 z4 n
- "to" => $to_uid, 1 Q5 H6 a. ?1 N2 `: L
- );
& [; d# e( n# d5 r7 x, ~) B - $ch = curl_init ();
9 q- F5 T5 u# D# S- _7 F% U/ W - curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
5 W) z/ w: E7 z9 V$ @0 B* ~3 X - curl_setopt ( $ch, CURLOPT_POST, 1 );8 n4 m" Y# \: \
- curl_setopt ( $ch, CURLOPT_HEADER, 0 );
. `. r1 O0 r! m& Q - curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
3 l6 Z, o2 Z7 i: S9 O - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );: R$ O8 T2 G* s1 v' o. f1 b" l. m
- curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));( X; {# h* F" B8 \; j1 \1 U
- $return = curl_exec ( $ch );
) S9 o: T8 b* o4 [6 f - curl_close ( $ch );* |% R' i# `) d
- var_export($return);
复制代码 1 ~5 c, `- f+ X3 n& j1 d8 e
$ Z5 T4 A6 h9 B- W3 f2 O& p2 a6 I
5 y _( ?' [ J& [
; Z/ ~5 |$ U2 S- B
7 h/ L0 n1 i7 b" D4 V
本文摘自 https://www.workerman.net/web-sender
3 S6 R0 ^# Y/ u x; W
! s* U- ^% s8 }6 o) Z% o0 K# b6 K) S: i6 Y# [
1 X7 y4 J( s$ X/ O
; h0 ^' t/ B+ \
1 R7 a6 `; s- X9 b
0 |1 n1 Y$ C: t/ h. h, U+ e" ^. _3 V4 v* j8 C \+ R: d% d. j
& o4 l2 |0 v6 s. ?
0 ]$ E1 w& U8 G
4 q) Q+ Q4 Y& Q4 A o6 Q
1 }6 R9 z) ~, C( N4 w. O7 b" d/ W7 c
0 h9 m. r; I% M8 o
|
|