|
如果你要有一个支持 WebSocket的服务器(Java、Php等),可以在浏览器中使用一个新的WebSocket服务协议,来打开一个链接: - var socket = new WebSocket("ws://172.0.0.1:8080/SpringWebSocketPush/websck");
复制代码 + u K0 \) ? Z( j! w/ v, Y+ q
与http://这一URL 前缀等价的WebSocket 前缀 是 ws:// ,安全 WebSocket 则有一个与http://等价的 wss:// 前缀。
w( q( T7 J7 c+ M% P$ \" v
' X: M; `$ T s( @- p0 J! d Y7 |' C7 H2 x0 g
该套接口对象有四个用来监听套接口事件的回调: - socket.onopen = function(){ //打开5 l% v. T$ i; Y6 G6 L
- }
2 k3 N6 c+ O W$ S
; H$ r6 O0 I, Q. e$ F- l- socket.onmessage = function(){
0 l4 k& P+ g7 H& a6 @ - //在event.data消息数据. a) Z) E6 `0 C6 q$ q
- }
8 Q+ Q4 f" U. U( ]2 F, K' W - 6 Y4 R' N c4 Z
- socket.onclose = function(){. N1 s! I- g8 A# j0 ~4 k( H1 V# A- F; V
- //关闭WebSocket5 T# U0 J- P% i' ]# v- i5 N# {
- }/ X6 |, C' h3 P" `( v- p8 k& ]. e
4 {) a" N% J3 Z3 i% w# c- socket.onerror = function(){
, l& J5 r5 H/ c/ ]. ]5 n8 d0 p - //错误触发2 r4 X. |' l. j
- }
复制代码 . N2 L( a3 w0 P2 h* D
3 c3 ]1 U9 X! r- e通过套接口发送数据,调用socket.send: 0 `1 O h8 @" w/ Q
! S/ D" t' }& N! ~2 V
7 H8 U: \) O9 c0 q6 j/ t2 F( x7 r代码附上: - <!DOCTYPE html><html>5 N8 u7 U1 [: A0 y( M% p
- <head>1 [% Q2 N( q/ V A. G* }1 D! V
- <meta charset="UTF-8">; R [+ ~ A4 L0 U4 V
- <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">* M0 B. |: k2 |4 A
- <title>WebSocket</title>
. w: R# w$ W# b - </head>
" ^1 J" v" j5 G1 O% F/ } - <body>
6 H, I- O8 F. D& `6 f/ T' E3 \7 D - </body>7 }: Z- E/ `$ n3 ^ G
- <script>+ G5 e& G2 K& h4 M
- var socket;! `# x8 U0 l9 x3 ~2 f9 p
- if (window.WebSocket) {
# h3 c. O4 M# @. {$ p - socket = new WebSocket("ws://localhost:8080/myapp");
4 o( A7 w4 K, S" G0 }, t* l - socket.onmessage = function(event) {7 {5 I& @5 j' B1 n7 N: ^
- alert("Received data from websocket: " + event.data);
7 j4 D* ~$ o2 m/ P4 W& L8 o - }$ Q; {* f) @6 |1 I3 d, ^
- socket.onopen = function(event) {
" t/ _- t: x( u' H - alert("Web Socket opened!");
" H' o. }! g$ p - };; O7 c/ D2 u) \. L
- socket.onclose = function(event) {8 `: \4 k" z! ?- [- B
- alert("Web Socket closed.");6 T. _+ R4 Z) p& {' ^# }$ }
- };" g! W8 Z8 j$ ^, @8 I
- } else {
, T8 Z: [! ^/ h* W) ?) W9 V% ] - alert("Your browser does not support Websockets. (Use Chrome)");+ `7 s$ F/ U2 z- i
- }: w0 {9 ~! n4 o8 @$ y
* @4 L& B6 }( c+ `- function send(message) {. A& ^ `1 ]/ i2 Z( H# n; ]2 N* s
- if (!window.WebSocket) {# r' _6 D% W+ W/ j
- return;; {0 g" U5 }8 Y$ Z/ u) i1 v
- }; _( Q3 V/ V" c5 E3 n; [& p* C0 O
- if (socket.readyState == WebSocket.OPEN) {* H' [1 w- q9 V2 a) `
- socket.send(message);
' I: j( z( ], R5 m3 n/ j9 w - } else {
# R0 b0 _- x+ _- Q. b7 i; F U - alert("The socket is not open.");
; ~* \0 ]7 g8 g1 p) @% d - }
5 P ?% z% o( w# W! _ - }0 v* F' u$ A" Q: z. H
- </script>
8 P/ [5 g# d, P P/ W& T* q - </html>
复制代码
- d7 G2 K9 w. g1 ^; j! r% E+ B4 @" I
' G; A4 ~1 R0 x9 ?' U" F
|