管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:. x: D) M$ d3 m8 v* [9 a4 Z
- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
& v3 G; a+ O, \" [5 Y9 D; f6 d 下载WEB消息推送框架
6 j$ b5 {2 ^7 Y: t! B+ t, F
9 |0 y, ~: u% V( \! D r" s 下载19472次
. e$ W7 {$ n1 g% l: y$ J" M0 U4 T! ?$ |- J6 |! A+ m+ }. q. @% D# f2 j
PHPSocket.IO开发手册
1 f8 k5 P' f4 l7 R" R# y" E8 T- g' S) n# S. R5 U3 n
PHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
! l! I/ J0 m$ N3 W9 F6 o其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容 6 y2 S3 D3 E' U+ L) R; F
效果2:! V8 d9 f/ v- e& ^% w3 S. M/ r
见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计
! f' F' f" m3 L9 P: J0 t4 g" c8 c! y
安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组) ( I! D8 r. N1 y/ o
+ ~" {. v# O7 W: q8 l% C6 B) G2 Z! @6 D
前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
, v$ C9 Q& G7 e" C5 ~4 r6 B7 D - <script>
% `" {" L x, q' J$ U - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip
4 z( d$ g9 o. z0 j: ? - var socket = io('http://workerman.net:2120');1 h" X: v2 r T/ T6 s& S
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
3 D/ W2 d0 x" O. r* e! h; R' E - uid = 123;
( q! D' \' g$ ^8 N& L4 Y$ j - // socket连接后以uid登录4 G* z+ A; O4 r9 t- T% v" V/ b) i
- socket.on('connect', function(){
' G* K& T1 G4 v1 c# N - socket.emit('login', uid);
P, `' z5 z5 O1 O2 ? L - });7 |" B; A; q( l% m& o5 b
- // 后端推送来消息时) f9 P" T( b) T2 X, p
- socket.on('new_msg', function(msg){0 R0 \0 ]4 X4 k, H5 d! {' Z
- console.log("收到消息:"+msg);# i- V+ c! o$ t4 _+ A' e
- });8 N, c) F& x% v% t/ R' H
- // 后端推送来在线数据时
2 ^$ w8 O. Q# j7 X$ F, _ - socket.on('update_online_count', function(online_stat){6 S2 L8 N8 F$ U, \
- console.log(online_stat);
9 ~5 Z" X V* `' ` - });
3 h/ s% ?4 G2 I - </script>
复制代码 后端调用api向任意用户推送:- <?php
; Q, {* ^- M7 P: B0 l. {9 o9 _1 B. k - // 指明给谁推送,为空表示向所有在线用户推送
8 C1 W7 W- ]; E: g - $to_uid = "";
" }0 N( R2 a" D - // 推送的url地址,使用自己的服务器地址
: z3 V4 H. _% q( p4 t - $push_api_url = "http://workerman.net:2121/";
. _, p; D1 Q* G- m6 ?6 C5 g - $post_data = array(2 }9 o* o: [0 H4 ~$ i: q' b
- "type" => "publish",, J- N/ i$ P' X' e2 Q% r! f$ |
- "content" => "这个是推送的测试数据",
) w! k6 g2 X% s, F$ u - "to" => $to_uid,
- k" U. A( r0 q - );
; D6 [% S8 J4 q. a# _9 i# N! p - $ch = curl_init ();- G6 U0 M* a. g7 V! L
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );0 V w |9 K1 y3 v. G' [' l
- curl_setopt ( $ch, CURLOPT_POST, 1 );
# f% j' s3 S/ p& R - curl_setopt ( $ch, CURLOPT_HEADER, 0 );
4 F! j% ]& y* | - curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );/ ]/ R8 ^( w$ H2 C
- curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
9 T F% I, [7 I! O, E- b' A - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
. H+ j+ X1 N9 Q4 ` - $return = curl_exec ( $ch );$ T- R$ w. i" q r! m
- curl_close ( $ch );
# T' B* @- n* X! ]- X - var_export($return);
复制代码 $ i6 P j3 J2 K" G
& w0 B# s, p R9 M2 P8 @+ u
4 y( M$ W V' Y" h* H
! q8 i" y4 Q Y
; e" U6 d% F* V! Y本文摘自 https://www.workerman.net/web-sender
" Z$ g# c* Y! ?$ Y) k% K( o: \ T/ M) M- \. N; b$ F! Y
X5 w! _5 f0 b
% y6 @* g& p. r Y+ p
! ~* B% F: ?# N) B9 }+ ]
7 ]6 u5 N$ ]% T% W
4 g1 t2 O4 \' u: A
. r9 h/ t8 i0 g; A% x8 n0 O
( @8 j) l# t( ^ r5 u$ `' Z6 o
+ E7 P2 a: W! O9 \: y; o) `9 `* H# ^8 C) N# _$ T$ H
' W) X. @6 w) u% q* s" e2 p1 }/ f1 @1 ?4 v; N4 I' W
/ u f( q0 l E0 a
|
|