管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:0 q7 R4 ?7 x" \
- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
4 u z: d7 k& a- t 下载WEB消息推送框架
# ^9 T) p; b& K+ j* _% j) {5 [/ E
下载19472次, ]! e0 r7 L. \2 S5 d' ^6 j7 A
, _# y- l6 t' ?1 R6 x$ r* D
PHPSocket.IO开发手册
; i/ r9 N J$ l s1 }+ I
# | ]6 _% u8 x4 \4 o9 MPHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content9 v- H* ^& z2 o- q6 l0 i' z
其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
! M5 s, q; [" F4 |效果2:
5 Z' S$ {, K0 Q1 Y$ M见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计 8 I/ O' J1 x1 g( l
' @- n( Q! Y4 u$ c5 a& Q6 _
安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
) y4 e1 b7 r, q
! {9 b! q1 c3 `* |0 [ y
& `: g$ o: S" F前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
9 B. @! q9 |2 l% A, S" G3 R - <script>
) Y: }+ W7 v$ l$ Y2 j - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
7 w( I% D8 e7 R' p2 y( e - var socket = io('http://workerman.net:2120');
1 b+ W4 E& Q4 I - // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
& ?2 a6 a7 b4 s - uid = 123;) d3 Y! B5 f7 \: V. t
- // socket连接后以uid登录
9 ?+ m# R$ z9 M$ z/ g5 u - socket.on('connect', function(){
8 ^: M+ c+ h, x- F - socket.emit('login', uid);5 m; i& c$ l: |+ Z+ ?& ^
- });
/ U$ z! m. t( o" l; ` - // 后端推送来消息时+ @/ l, J. |- Y
- socket.on('new_msg', function(msg){
& P* M/ I1 i: L6 O( k - console.log("收到消息:"+msg);
e1 ^, L& q8 `5 o% j, r - });
r9 X/ v1 Y$ A$ t# f# Q9 [ - // 后端推送来在线数据时
0 ? m( Y9 o" ] a( q* c" ^3 k) Z - socket.on('update_online_count', function(online_stat){
; J* o+ B0 \! h9 G- G2 ^# K* u; b - console.log(online_stat);1 q9 m9 W9 [# y! j! z
- });1 o# C* f3 ?! ]& n' d/ r! }
- </script>
复制代码 后端调用api向任意用户推送:- <?php
2 d, [0 s* n* ~ - // 指明给谁推送,为空表示向所有在线用户推送2 S! ^8 ~/ D0 m5 H( b% V
- $to_uid = "";
' f2 H# Z' H8 f% \& I2 A) e1 D9 t - // 推送的url地址,使用自己的服务器地址
2 E7 m6 G* a7 ` - $push_api_url = "http://workerman.net:2121/";7 @0 ~3 S4 W$ f z
- $post_data = array(
8 B+ x: Q+ U# [1 b: i# O - "type" => "publish",2 S7 t. ~6 g3 H' X# k7 @
- "content" => "这个是推送的测试数据",% M5 P5 Q6 A% v
- "to" => $to_uid,
) O" L- F% Y1 ]9 V) n9 e- Z8 U - );3 K) y( Q3 I/ y& C- O0 p' S7 @7 n
- $ch = curl_init ();2 j6 u1 C! w& n m8 e
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );! n S2 ~* ]7 Z0 b* M ~
- curl_setopt ( $ch, CURLOPT_POST, 1 );; x3 z9 D v( T$ j
- curl_setopt ( $ch, CURLOPT_HEADER, 0 );
, u: Q& T1 }6 N. j1 G - curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
) @' S$ m' A& l+ N9 H& N - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
. I& j1 [! W N+ J3 R8 r - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
7 I( \% b* q8 K/ x2 N$ @ - $return = curl_exec ( $ch ); d* R6 F5 T5 X# z
- curl_close ( $ch );
6 Y! x* k1 M5 R: q - var_export($return);
复制代码 5 ~+ a) {/ s3 V" s; g' E5 r
/ s# U: C/ Y c, P" [! x7 z1 a
! v' p" F0 x S- m, j" s
$ h2 T0 p+ O6 `4 G- y
" |& l: b) K8 Y% b: Y; Z& q本文摘自 https://www.workerman.net/web-sender
' w8 X. d5 W. b1 z2 a( J$ b% h5 o
9 Q9 q0 }' \0 P* F2 K3 t# M% ^8 B' ]3 H3 v" x) e6 Q2 [
. n' Z- H m! |) j9 g
4 v# I) z6 A% z4 y
2 U" ?# ?. m; S; Z/ N1 v0 {* J H* S9 R* A2 j8 _
( Z6 u9 l. b* t9 f1 ~- l% p" V1 A; _8 F% K0 L+ E( F+ `+ N
: N( T: o& T/ h9 O7 A* J
% I F' _4 j2 K) W1 m7 n- \8 P( H' G( K: _5 C
' B" v5 V: p/ |5 H& y: m. O
7 O5 h1 a1 M# h( A f+ P7 y |
|