|
如果你要有一个支持 WebSocket的服务器(Java、Php等),可以在浏览器中使用一个新的WebSocket服务协议,来打开一个链接: - var socket = new WebSocket("ws://172.0.0.1:8080/SpringWebSocketPush/websck");
复制代码
1 y5 W. U5 a3 l与http://这一URL 前缀等价的WebSocket 前缀 是 ws:// ,安全 WebSocket 则有一个与http://等价的 wss:// 前缀。 5 P/ x% r4 {- l/ k: M
( D5 J m3 p) {9 E/ z2 C
1 Y/ q' c) v# h% T1 O _' Q
该套接口对象有四个用来监听套接口事件的回调: - socket.onopen = function(){ //打开: b+ z0 W9 q3 p8 L/ w/ |
- }
. K# _3 {4 Z5 `3 X+ z/ c - $ H) K r' ~4 `( [- B
- socket.onmessage = function(){3 J2 ?! l I4 p# |) c
- //在event.data消息数据
1 R7 v" Y) `* R( q3 ~0 } - }
7 R/ ]- Z8 F* |! G0 M/ i: o
0 }6 s; C/ a4 T4 Y' P- socket.onclose = function(){
1 a+ x0 ^: @2 l$ i: B* `' f" M - //关闭WebSocket
- a. O$ ~% \" p3 p6 k" e- Y - }( i D! S. F2 F* H
- 5 `3 m/ ^: {/ {) M% b. k f8 `
- socket.onerror = function(){
3 @/ W( q2 @0 b7 P$ e( c# J# p" t - //错误触发& V6 Y9 Q3 _* \5 o, j9 o( V3 R' l
- }
复制代码 " ?" V( }5 O+ ^8 |& f& L4 c% C" L
y( [ D( ~! O: c8 A+ H \
通过套接口发送数据,调用socket.send:
9 k7 @! k( N/ m4 c! }# [' \: l' l: c8 k
5 F' g# l: @# f) q3 s代码附上: - <!DOCTYPE html><html>6 E# `# S8 o2 m0 ]# |8 |+ O; j
- <head>1 F" a& O2 A; u9 r' h4 Y! e
- <meta charset="UTF-8">
( h* W2 i- m$ l - <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">
: ^9 K6 y" V2 O - <title>WebSocket</title>4 V' R0 ^6 s. F. o% v; h# f+ T8 s
- </head>
8 S4 ~6 c( J# [1 R5 g: e! P - <body>4 H S7 `0 M" M5 j3 W. e; H
- </body>: j/ x" e9 t: ^+ L0 i+ C3 Q* T
- <script>, e& z5 t) D& p
- var socket;
/ W j& D ~; m% o, j - if (window.WebSocket) {( r3 v, ^( z' V
- socket = new WebSocket("ws://localhost:8080/myapp");" ~2 p- t/ J& m3 N6 T0 r9 k
- socket.onmessage = function(event) {1 b, W/ ?1 [( m5 {1 B) j
- alert("Received data from websocket: " + event.data);
. D; {2 j! D8 a - }& Z8 O- s: A% Z9 x# n9 l9 y3 u
- socket.onopen = function(event) {
" M& e8 A. ` c - alert("Web Socket opened!");
6 W9 K% D% w* j: O: X - };
) B8 w5 B" z+ ]0 A' R8 L - socket.onclose = function(event) {
+ }; p1 m: u; g3 b/ |" ]! r8 P - alert("Web Socket closed.");
6 Z% B. ]. ~0 G' l: @. o; N - };+ [! G) R. r2 a3 c
- } else {& ]2 r3 [6 x; @6 v+ y
- alert("Your browser does not support Websockets. (Use Chrome)");
7 C m8 v) t% l3 y7 U - }" n* g: b/ o4 G8 c" S& M, x
5 S( F) M. j/ [" e* d9 w1 }- function send(message) {( r$ Z- A2 K& z# N' p# u$ m- u5 @2 e
- if (!window.WebSocket) {
C$ g9 O0 L& U- k! S& m5 z - return;& y: c2 D$ a+ v8 m) m
- }. l- E! l( @0 s
- if (socket.readyState == WebSocket.OPEN) {3 d2 a( m3 K5 N5 i
- socket.send(message);: w/ g* K0 M6 {6 m0 n7 w/ G& x
- } else {5 ]/ m0 e. t$ u4 q. J
- alert("The socket is not open.");% | Q* Y5 ~' G+ h# Z- c% { `$ X7 s
- }, ?! I3 ^+ z( ?! X! [) M' U
- }. i; ]5 Y/ B9 W' K5 Y
- </script>, V+ k9 u" g; F o. Z
- </html>
复制代码 , h' i5 h+ v8 K1 y: v
' s: e2 |: c, S! }" q, F8 p2 U5 h0 D+ p' c1 ], b" t
|