管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:6 J* Q& h0 R8 \! Q
- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
0 J* t; k" @ T
下载WEB消息推送框架5 n( z; E, m2 b
' ~2 M0 m' P' O0 R
下载19472次- G0 {) ? n& J: R( O
' d1 _ q2 U& t
PHPSocket.IO开发手册
8 _; Z9 l, a4 r6 @# ~8 A7 Q: y" B4 @ M- w
PHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
" O( B, ^1 ?" r: A L其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容 0 w2 y0 E S* M: r! L* _) x$ c! G: z
效果2:
8 r6 ]7 G. I, Q' G见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计 - _* U& z2 Q+ M& E4 Z* P2 N$ f2 J2 \
& S- Q$ E5 Z4 @安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
* x' G9 p4 G3 J
! K) S9 Y( y1 x. l/ K
" S" i' K5 @; f. f1 _前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
% v9 U. Z# m$ N7 o7 y - <script>
) x6 ]+ J s, I0 n. j: [8 E - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip( |8 ^, c3 h3 c3 E
- var socket = io('http://workerman.net:2120');0 _1 ?" H4 v0 v; {2 y# F7 }
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数
9 x4 K/ Q/ f$ s# R k Y+ U - uid = 123;. p' Y8 y: }. }4 C! g7 j3 L
- // socket连接后以uid登录
* [8 b( ]5 r {8 j; u - socket.on('connect', function(){
, ^, F, h X3 ]7 T - socket.emit('login', uid);1 `( P3 m+ [6 Q* Y/ _
- });
# L# o. ?2 K( D% }; X, n - // 后端推送来消息时* E' F- d3 x8 ^8 L; @
- socket.on('new_msg', function(msg){) a, H9 T$ E7 w0 Q
- console.log("收到消息:"+msg);
$ W! r" C Y8 h; s* b - });
. j0 C! g1 }! J" X, ^( x) \! M2 Q& F R - // 后端推送来在线数据时9 N2 B8 R4 N( z _- h0 i9 m7 \; A
- socket.on('update_online_count', function(online_stat){
5 j+ B1 @- m; d2 E - console.log(online_stat);
* ?* s/ F2 D& A4 c% h/ L" N - });
7 f" ^, [$ [7 q# @2 y4 q - </script>
复制代码 后端调用api向任意用户推送:- <?php
; i1 e( S2 `) A n' B7 h - // 指明给谁推送,为空表示向所有在线用户推送' A8 ~7 {( I9 b4 h. v! i
- $to_uid = "";
" ~& M+ c; K! B5 ?8 z( ^ - // 推送的url地址,使用自己的服务器地址
4 t: x* K* }, J8 b4 H" S. f - $push_api_url = "http://workerman.net:2121/";0 b5 S) [7 j" p# S
- $post_data = array(/ R4 D8 V y5 `5 L' _/ T
- "type" => "publish",
( N9 i! W8 ^% E k# o( ` - "content" => "这个是推送的测试数据",1 i& W: {; I% x( V0 z
- "to" => $to_uid,
' w! q* i6 I6 F n! F% V - );
) q! |8 a+ g, A$ j, k3 @" i& r - $ch = curl_init ();
/ R8 ]' k3 N% T( W. M - curl_setopt ( $ch, CURLOPT_URL, $push_api_url );9 ?" e# a2 h* E& d
- curl_setopt ( $ch, CURLOPT_POST, 1 );0 c% \! T( Y7 O6 k, f3 w' @% w9 T% {
- curl_setopt ( $ch, CURLOPT_HEADER, 0 );/ H* j% f+ H* @/ l6 h
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
% ^6 b# P! Q2 k2 ?9 g7 M - curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );" O0 C# w$ E+ H( b) f0 p b1 J
- curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));! m) i% [6 b5 W+ O" a) q5 G
- $return = curl_exec ( $ch );9 Y" [8 j7 l. X/ a- V
- curl_close ( $ch );
* z* O8 P- g1 g& V+ O - var_export($return);
复制代码
+ Z4 Y: F0 Q' Z8 Y7 m$ Q7 M" S+ |
# J# T3 t8 ~ L0 ]: h( a) m) ~) _
( j$ i3 q. n& C5 d9 a/ W0 e' b# x2 n& D, v% _) E8 n3 c% _
/ U' {" n; u9 K& L; j" Y) K+ B本文摘自 https://www.workerman.net/web-sender
3 }8 _' ]4 m/ q
! z& |1 O c! e8 j, k* Q s7 j O1 A2 [8 w9 U
9 K" E$ O, ?) Q: D) t* e* d# _% s/ O! H2 t3 c0 Y% ]" Y
6 W: d" `3 R5 d/ o3 ?" a: X6 n' y. F- z' m
) r( Z; E3 H8 ~
0 R( S G+ p4 p! ]- e; z
# |% M& l+ b$ Q$ k7 b* q2 }- X$ n
# B, N p9 d/ v/ v0 ]5 U8 G# B K" o1 i/ o
- G5 n* ]5 M7 `+ v
' k. X1 S/ F9 q# W- G |
|