管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
|
web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。 特点:7 T; t; y, q" s$ s3 S$ i
- 多浏览器支持
- 支持针对单个用户推送消息
- 支持向所有用户推送消息
- 长连接推送(websocket或者comet),消息即时到达
- 支持在线用户数实时统计展示
- 支持在线页面数实时统计展示
- 支持跨域推送
- 下载
- WEB消息推送框架
-
web-msg-sender.zip
(1.5 MB, 下载次数: 1)
6 F0 q, x: }$ f) J \$ G
下载WEB消息推送框架( j/ c6 H* N$ ?
2 `; Z. d1 ?& Z* v+ w1 ?: D
下载19472次, L3 `5 T# P2 V# T
4 @* W$ X. i: Z% E# O* XPHPSocket.IO开发手册7 Z) v6 V' e( r$ O V
7 V y3 g3 F2 a! w7 q
PHPSocket.IO开发手册Demo:效果1:接收消息页面:http://demos.workerman.net/web-sender/ 推送接口url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
3 C) t \! w& T% D其中to为接收消息的uid,如果传空则向所有人推送消息 content 为消息内容
: Y) V- K6 I2 b1 [( H效果2:
% M: i) i! y. u% G, E见本页面页脚在线统计部分,支持实时的在线人数和在线页面统计 3 n: d/ Z4 `3 D5 L( w/ b
1 W% J( T! |0 k1 X L, l
安装启动首先:参考手册检查/安装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如图:(如果无法访问请检查服务器防火墙,如果是云服务器还要设置安全组)
3 t6 X7 C; `! m* H$ Q- x
. B( T$ ], x5 H( ^& x6 R+ U
# `0 ^# n5 E# L5 b前端测试:- <script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
" F9 a0 V& G* \* L" ~ - <script>- L" E( `) `, t
- // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip4 s; b( H. |% ?& s& ]/ {' L
- var socket = io('http://workerman.net:2120');" T% _2 l( x: x: X, X0 {
- // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数! R5 ]) A, H. M" P, W% P* |% q5 ^3 f
- uid = 123;; q. }2 ]1 X3 E2 T
- // socket连接后以uid登录
/ i) ^& b9 b1 p6 t( N - socket.on('connect', function(){
! D. f; M% }, ?2 b3 C9 x: b - socket.emit('login', uid);4 g6 N. I! s/ V4 m
- });7 V6 q3 g5 J/ V5 _7 y2 y
- // 后端推送来消息时3 M* \ \+ Y9 j/ U& k
- socket.on('new_msg', function(msg){ _" m6 _; E1 a" N
- console.log("收到消息:"+msg);* }- L6 @( J9 S, `* d
- });
+ f' L$ N" I: a8 q - // 后端推送来在线数据时2 Q( E4 [9 R( Z |3 b3 ?
- socket.on('update_online_count', function(online_stat){
! z/ |% @+ P) r- A; Z l( o - console.log(online_stat);
" B$ ?8 e2 o" ]) b, y+ V - });$ S j. I- k7 _+ Q6 c# o+ \& E0 V
- </script>
复制代码 后端调用api向任意用户推送:- <?php
2 c v I* p: r/ G- j - // 指明给谁推送,为空表示向所有在线用户推送 E4 Y/ m; D* f2 T: s
- $to_uid = "";
: j3 B* G0 k( P6 h0 J$ A z - // 推送的url地址,使用自己的服务器地址' j1 O8 U2 X" Y7 q
- $push_api_url = "http://workerman.net:2121/";
5 b% o! Q. B& y - $post_data = array(* b8 f1 \- W' S6 t' G; L) ]' ]' t% T
- "type" => "publish",
) _0 I$ I$ P8 J& b - "content" => "这个是推送的测试数据",
( Z- s8 Q: `/ _( P - "to" => $to_uid, ; \) F) i" y3 v" h1 {
- );- x# W: s# y- w
- $ch = curl_init ();( L0 {. d& l1 M6 t# r
- curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
5 k9 o# x* G3 C5 P: d - curl_setopt ( $ch, CURLOPT_POST, 1 );% l# ?+ n+ f5 ^8 Z3 y7 U
- curl_setopt ( $ch, CURLOPT_HEADER, 0 );* R! X- Q3 o% i- W' c- u; m4 t7 f" c# [
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );- E: Z' [, d4 I J: \8 ~9 `9 R3 p7 l
- curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );+ q9 @2 o- l" k+ C
- curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));5 }0 Y% h' o0 ]+ K
- $return = curl_exec ( $ch );
# C0 k. r9 ~/ P7 j+ x6 |( v - curl_close ( $ch );0 o) x. k6 A6 \. f+ O
- var_export($return);
复制代码 : ?- Y) p- F/ [2 `- C2 u5 q @
+ w2 }. T# Q2 _" B" ]' D, X. e7 f9 t: e# R* t
4 f0 G. q5 Q; }8 \
8 F9 m; L; f- H: l; b4 I5 d* U" w本文摘自 https://www.workerman.net/web-sender, F1 P+ s; q; i, D! P
5 W; V0 j& `4 ]# c2 k% e U. f' j$ L1 a3 r1 j
" v- X) A/ v5 e" x. R3 n
/ O# f$ U* @( i4 L
5 a, G; [. B5 d( U. `' L4 x" V8 ?& T8 Q: k2 e3 D" x) W
: H4 A) q8 _4 F0 U) `! T E4 [9 V4 u
q( w) T6 O* Y& j9 v8 X$ v q% a9 J2 g& }
g4 R S( ]2 e* J
5 ?+ d- F6 c/ K$ m4 `- c. m% D& r* ~) t& ^- v2 w2 [! j! c! k
|
|