管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:. O. [4 E# A7 a! n3 ]% M8 X5 r
- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
2 Q$ f3 |7 l+ f7 w% b# b8 {4 M 下载WEB消息推送框架1 w$ ^* u, u5 y/ U3 R
; N% W; B" k2 j1 F4 P
下载19472次
2 ~0 h, V" D! B [( B+ ]2 Q3 m& o8 e, Z
PHPSocket.IO开发手册
- S! i7 i& n4 M7 n, S% s, S) k( O' J
PHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
4 o o5 n5 t" s, ?2 l其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容 ( R5 g* g1 m+ s/ [7 v
效果2:. C! N; X: u: [" o) ^7 k: `' E1 p3 I
见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计 / J$ m- ?2 I" F* O" v4 e6 @
! p9 U( L7 }; d! w/ 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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组) ) e: B0 a. C! W/ F5 L
# L, g0 x% v7 A- r p+ ~, h
. b: p8 @3 C5 Q) u$ I前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
+ X. J9 j; C) f5 A7 @6 r5 B - <script>
- o0 C' R. N2 Q: z# l - // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip6 k b! C6 i2 K b2 F
- var socket = io('http://workerman.net:2120');8 i) H6 C0 s7 E- U
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数0 G k/ f6 F$ z- t- E" G
- uid = 123;" l/ |- d2 t' c$ ^4 r
- // socket连接后以uid登录
: L: K9 Y4 I7 ~. O) g - socket.on('connect', function(){, w8 B0 e- Y5 I0 T6 u+ w5 {+ e
- socket.emit('login', uid);
! z" V" B" W: ~' s4 N( O - });
! w# K- Y7 }' P - // 后端推送来消息时
! Q8 i' S0 U" G - socket.on('new_msg', function(msg){! n3 G% J- T: q' s/ k
- console.log("收到消息:"+msg);5 n( v, K$ S* w/ P$ t- b4 @+ l5 d+ w
- });' a l t) o0 p) l
- // 后端推送来在线数据时& K4 F/ u1 C2 H( q+ Q
- socket.on('update_online_count', function(online_stat){
7 D! h9 Q+ n8 @. [6 ~7 W - console.log(online_stat);
8 {& y8 J9 P* x1 C/ b5 t) i - });
+ H5 L8 ?" m( J) s! P" U - </script>
复制代码 后端调用api向任意用户推送:- <?php
; F5 u. q& K1 f9 c, u. A) q - // 指明给谁推送,为空表示向所有在线用户推送0 ~' `0 H. p0 R6 v% e" V$ m* x4 X; |
- $to_uid = "";
; k! |/ R0 g( n7 K0 w - // 推送的url地址,使用自己的服务器地址5 N8 O z% C0 x0 M5 {3 Y9 G
- $push_api_url = "http://workerman.net:2121/";
( M$ U5 B6 V, W D' }+ ]. J - $post_data = array(
6 {. y Q& t/ G" P, a4 R - "type" => "publish",/ r, t& U; X* B/ L( i
- "content" => "这个是推送的测试数据",
0 a: h* x9 A' N8 Z/ g - "to" => $to_uid,
. U! a- _. |+ ` X1 b' K - );
. T [; }% Z( ~4 F+ F3 s' D - $ch = curl_init ();
0 t% E! N# k; V* P1 h2 Q: g$ _ - curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
; V- g( A2 _* K0 h3 M - curl_setopt ( $ch, CURLOPT_POST, 1 );1 O# G& z; s* K$ Q; _
- curl_setopt ( $ch, CURLOPT_HEADER, 0 );4 [5 n- K, P0 [/ w2 V5 @) H& M
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );& U# U, U. q. u) _, Z9 {
- curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
0 w% s n: K0 T; x/ ` f0 T( | - curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
* D, c$ j9 C4 V' } O - $return = curl_exec ( $ch );
2 h. {( @4 V0 R3 q+ [/ W. C - curl_close ( $ch );
! ^; ?( e# Q% E5 b. y/ e - var_export($return);
复制代码
9 B/ y) k& f* U" p8 S" u1 Q, x- ]# F. y5 R
4 t @# D8 X, V7 F8 _% _
0 n; C: k8 F% d% l4 d; C6 g1 s) ~& ]2 a% M$ q7 C& T5 n+ q
本文摘自 https://www.workerman.net/web-sender
0 f) h2 v) d$ D x$ [; I
9 d7 h! W( }- t9 g) a! w6 F% c! g2 V
% l% ?, M, ~ V
' Q$ `; _6 v9 {3 ^ Q3 T, Z
& Z8 _5 G& N! t4 J* h5 ~- g+ z+ p% o/ k' ^# T; Y. }$ C5 c
8 y! Q. {; a4 O$ o9 v# v! j0 o3 z7 H( J/ _' O
2 G9 S' \1 r- P- D. ]. ?0 M
( x7 [3 p' s y9 ^6 ^! r
3 [7 g" a- G0 w" V' @( z" j1 s* N3 |3 `) l+ \* r
4 U. h% M" p, R$ o5 I4 h7 n( N |
|