|
如果你要有一个支持 WebSocket的服务器(Java、Php等),可以在浏览器中使用一个新的WebSocket服务协议,来打开一个链接: - var socket = new WebSocket("ws://172.0.0.1:8080/SpringWebSocketPush/websck");
复制代码 7 Z5 P4 J9 \( J4 b- I7 H
与http://这一URL 前缀等价的WebSocket 前缀 是 ws:// ,安全 WebSocket 则有一个与http://等价的 wss:// 前缀。 0 l; A4 i& H H8 |% y
+ @) Z/ X0 z# T
, C5 \* l; N6 n3 ?. d该套接口对象有四个用来监听套接口事件的回调: - socket.onopen = function(){ //打开
( N. W5 B* m) ` - }
; a e0 ]2 ^5 c* V6 f( H/ ^
& [, _4 h6 ] S$ {3 q Q- socket.onmessage = function(){
8 f1 H+ c! _8 p! o0 S: @ - //在event.data消息数据
8 A/ k+ j* J& T5 h - }
* S5 C# y( t5 _
3 P: b; p3 w% H6 l5 }3 _. r- socket.onclose = function(){
& x7 @' o4 ]1 V3 A" X3 c/ E - //关闭WebSocket. u5 P- l6 _4 E1 d" R: e9 K: R% G( [
- }' X! m; u9 D6 c' M5 ]
. a% t1 {# G( g, H% @5 w" E, ^/ L- socket.onerror = function(){
0 [+ n. Z2 V- q$ | - //错误触发
5 q8 l( I& Y- H5 D - }
复制代码
- R# o: g) N4 j; e- m
) i4 _4 l' c& l) x) B) Q: p4 u通过套接口发送数据,调用socket.send: 6 y+ W$ `5 S7 r. }% {: M
; I6 o4 I) [! {
4 @; d# ^2 l, d. J' U4 ^$ t代码附上: - <!DOCTYPE html><html>) S: p' ]; i8 X* J: x
- <head>+ p: \- ~. D/ H+ I! @
- <meta charset="UTF-8">/ I9 r8 F* x. u r
- <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">2 W) Q0 `3 z) Z1 f; s' v6 B6 i
- <title>WebSocket</title>
8 E* d# e' Z. _8 [ - </head>! n& O4 @* I6 `( ?2 e$ K" B
- <body>" O9 W/ l9 B" Y% B
- </body>. I4 j# R- R7 |7 U3 ^
- <script>. N( d: ~* a4 G) L% l! A
- var socket;2 S1 }; {' T' \! S2 f
- if (window.WebSocket) {' ]8 C, a4 Z8 j4 d! C5 Q* b) r! a
- socket = new WebSocket("ws://localhost:8080/myapp");: H# d7 I" h; j2 }+ ^3 z
- socket.onmessage = function(event) {/ x5 @4 U# B- l) l1 D
- alert("Received data from websocket: " + event.data);2 K) R% z: C6 l' T* T
- }
) A8 c7 D% d3 K - socket.onopen = function(event) {
% I; a% d% e6 x; V* g - alert("Web Socket opened!");
- }* s6 R* k; n- {% N" e+ D3 w/ J - };7 t- _+ A, b9 D3 b
- socket.onclose = function(event) {' n3 K# g1 w) J$ _# L
- alert("Web Socket closed.");
( }# I' |) j9 ?. X2 b: U0 M' C - };+ {4 }$ v7 {( ^ `. E* E2 X
- } else {
/ w9 e4 u2 x! ~ - alert("Your browser does not support Websockets. (Use Chrome)");
$ R: T5 N' ^" P' y; B - }
' ^3 V: J/ k- T3 p( m
, T" E" p/ I6 }6 h2 q, @. l5 V1 V- function send(message) {
6 V# l% N9 `8 T& D3 q) P - if (!window.WebSocket) {
. c4 j/ O' I) Y" C - return; {1 H/ w1 c) n, \3 d
- }+ e- h( ]$ e: i# _% _- m9 q6 `6 U
- if (socket.readyState == WebSocket.OPEN) {3 p) c3 u* Q5 a T- x! o( F6 f4 V
- socket.send(message);
7 W1 Z; C$ W& [* Q - } else {- o: Y2 r" u6 G) w: m% x6 j& T
- alert("The socket is not open.");$ I9 c! H% Y9 H, o& C
- } v# n" J$ M* X, I1 g6 q7 e# w
- }
' A; ^* f9 r% t- Y2 P% K - </script>2 l* c+ Y% c) x5 g
- </html>
复制代码 4 N! I' ?# {# X) F5 U
/ X1 U$ |2 M' N7 {+ T& e& E6 ?
- }6 l9 a0 C' ^
|