|
如果你要有一个支持 WebSocket的服务器(Java、Php等),可以在浏览器中使用一个新的WebSocket服务协议,来打开一个链接: - var socket = new WebSocket("ws://172.0.0.1:8080/SpringWebSocketPush/websck");
复制代码 " m8 {- ~- E3 f2 D. O: c2 Q
与http://这一URL 前缀等价的WebSocket 前缀 是 ws:// ,安全 WebSocket 则有一个与http://等价的 wss:// 前缀。
' V, K" H9 ^, ?7 r9 D7 @3 c! H F/ ?$ S1 Y7 @" {* H2 N
5 F' S% C M, N8 X5 z5 }' @/ K, d9 Q该套接口对象有四个用来监听套接口事件的回调: - socket.onopen = function(){ //打开- `5 k0 i5 y! N5 \) u
- }6 E4 w: ?# O: C4 |+ r
& R; D. m/ u3 |. G4 x- socket.onmessage = function(){) U7 X) J. c& H; C }
- //在event.data消息数据7 y5 D, ^9 S& F: {) w9 [
- }
* h% f; m4 t$ e6 i - & u+ I# l- n ]" P
- socket.onclose = function(){. x/ H' S4 t* Q6 R4 a' g; M' O
- //关闭WebSocket. b0 q! K! v& i: b
- }7 i( N; b9 @3 H- `1 t, z3 k1 N
( K, p: x0 ] x. n- socket.onerror = function(){7 `/ m4 w6 M2 [3 k: S; v7 g$ @5 x
- //错误触发
( a3 w" o) {; n - }
复制代码 7 ]' f8 E: ]; b9 ?
' `; S( Z& b4 {1 n1 N1 x
通过套接口发送数据,调用socket.send:
' S: I0 t; ?' s p1 u W; D# ^+ u1 v* O! G! s+ [3 B
# o- X. l! ^3 X: ^代码附上: - <!DOCTYPE html><html>
/ d1 q% K/ d+ K! m - <head>( B5 @1 q( X; ^9 @& N6 ?
- <meta charset="UTF-8">
# T5 a( N4 i+ a8 |% Z6 [) `" ] - <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport"> Q4 |$ ]6 @' I: L; Q- h+ M
- <title>WebSocket</title>; I, U! Q6 [' ]2 Q, y9 k/ H
- </head>
8 D: X& C/ e# y9 D2 E/ c - <body>8 c9 E% Q' ^8 {6 H3 o: N S5 m# j* ]
- </body>4 Z3 p2 B5 b6 f, E0 i3 e) \
- <script>0 K. e K+ H* N7 D$ e
- var socket;
$ b- z1 @0 p" o/ c9 o - if (window.WebSocket) {
6 @8 s4 g# d. } - socket = new WebSocket("ws://localhost:8080/myapp");
8 X$ F* V9 ~+ u. ` - socket.onmessage = function(event) {
- A/ k: j- K* b7 Z- B; ]' Y! P4 f - alert("Received data from websocket: " + event.data);1 \0 ?/ g; _ C t8 L$ t
- }
7 [ ?. L4 i$ ^- X% o: u - socket.onopen = function(event) {( t' ^8 g1 W, G' h' z% i
- alert("Web Socket opened!");% M% X& f" C" m9 r- U- Y
- };
7 Y1 T5 L5 O4 V: N* v - socket.onclose = function(event) {( Q( w$ z& j4 @9 c
- alert("Web Socket closed.");
4 p7 s( U v9 U0 |1 Y B - };
( U6 W. i0 `' G* y8 F! m - } else {
4 U' T v% K% x( q1 f- {1 e - alert("Your browser does not support Websockets. (Use Chrome)");
7 v2 k9 H% Z- j4 `: A6 O - }5 Y. A6 s& w8 F) ?' p; z, |, q
- 2 o5 I4 B% l3 p- r9 d3 c
- function send(message) {& _: l ^7 I" [! i7 R) U
- if (!window.WebSocket) {
4 G7 V- Q$ H5 D1 c4 b1 r/ w! z - return;
% k$ P {/ b0 |! e: Q - }
' T8 p0 r) D0 |% A - if (socket.readyState == WebSocket.OPEN) {
% J% ^' C' {' V* V5 f" P - socket.send(message);
9 _4 D1 p+ O, u1 p, Z' n, g0 G: d - } else {
; Y0 b& ~' G9 w4 Y$ z5 m9 Q - alert("The socket is not open.");% y! e' J' I2 h- v/ P: f! r, n" e9 N
- }; u. v( c( E6 V2 E0 ~1 k( Y. z
- }: u( \* K0 b/ w0 `# e# S. n/ O9 S6 H
- </script>8 |# p9 c# K' V( e) q
- </html>
复制代码 ( x- M3 |9 d- s% U# D. f
( c) K/ p2 D# D/ U
6 s7 M1 ?2 L( R# B
|