cncml手绘网
标题: 在IIS上搭建WebSocket服务器(三) [打印本页]
作者: admin 时间: 2018-11-7 00:42
标题: 在IIS上搭建WebSocket服务器(三)
编写客户端代码
1.新建一个*.html文件。
ws = new WebSocket('ws://192.168.85.128:8086/Handler1.ashx?user=' + $("#user").val());
9 v9 f: @( x; `; E& `这个地方的IP和端口号对应着我们搭建在IIS上的WebSocket服务器- <!DOCTYPE html>
" x5 Q6 I, W" p) y - <html xmlns="http://www.w3.org/1999/xhtml">7 l; p6 @1 D: `3 r% |! H
- <head>
+ I5 M- o) `0 N* L - <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>& T6 h* W& k7 v0 o+ D3 g
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"/> C! E4 i1 j. k1 [
- <title></title>
1 H' p! ]" r# Y, |3 S I8 A. O - <script src="http://code.jquery.com/jquery-1.4.1.min.js"></script>
+ [6 L/ w4 r r1 A+ u: E; U - <script>; ` N& S: J8 [/ z
- var ws;
/ i4 ~; R8 ~4 [( x - $().ready(function () {& F) [0 h* F( t4 I6 I
- $('#conn').click(function () {. W' r6 p9 ]7 w: z9 G
- //ws = new WebSocket('ws://' + window.location.hostname + ':' + window.location.port + '/Handler1.ashx?user=' + $("#user").val());
# U* n M7 ^% ]/ c* H/ a - ws = new WebSocket('ws://192.168.85.128:8086/Handler1.ashx?user=' + $("#user").val());! ]! V8 ~! l( I
- //var host = 'ws://192.168.85.128:8085/api/WSChat?user='+$("#user").val();
" u2 v c: l6 x2 `+ g5 X - //var host = "ws://192.168.85.128:8085/api/WSChat";
. Z+ Y4 o, j. l: @( w - //webSocket = new WebSocket(host);
M9 p) H+ y! Q* K/ s - 4 Q& l/ n0 x1 R4 [" S
- $('#msg').append('<p>正在连接</p>');% h* u5 o# Y; Q( Q5 M& W' q
- ( y$ H9 E3 j+ c
- ws.onopen = function () {
5 ? r a$ K6 c: y - $('#msg').append('<p>已经连接</p>');( k8 }1 t# N, @; x
- }6 b S( a' V, F( |3 T: n
- ws.onmessage = function (evt) {
! k% h: y4 K/ t/ ~ - $('#msg').append('<p>' + evt.data + '</p>');
6 K$ s4 A1 a5 q - }$ r+ `( j& |; L- K( Y. K% C* Y0 Y
- ws.onerror = function (evt) {
4 }- n* H8 w( E7 w- P% V+ K. I - $('#msg').append('<p>' + JSON.stringify(evt) + '</p>');( Z3 ]' I$ C' _' L
- }9 M5 i) n1 V6 R. ], ^& j2 ~, K- ~( J
- ws.onclose = function () {
% O; F) c& q2 |2 F# w: H - $('#msg').append('<p>已经关闭</p>');
2 A$ b- |5 t) A0 A - }4 `& ~" R$ n8 D- H6 x/ W0 d* T e
- });0 H1 H3 W" T- u" N% S
- 4 |8 {% ? ^5 Y/ F( N% F
- $('#close').click(function () {% S1 B( B) u8 f; m" ^/ {7 q
- ws.close();
$ j+ h9 e# \; Y6 z2 ] - });
) w; v) s. b9 T6 Z' @1 C$ Z& |% r - " q* |5 |5 W# n* H1 X) a( ^; C
- $('#send').click(function () {- W% @( P" s! D- F0 p
- if (ws.readyState == WebSocket.OPEN) {
; A W3 s7 I' t9 T - ws.send($("#to").val() + "|" + $('#content').val());
$ `. X8 z+ j/ T! U* ?" j - }0 P' q: @ x+ u
- else {4 g& ?( u' ?# c) R! T0 B" L
- $('#tips').text('连接已经关闭');
- o# N- u0 k" ^' h5 N4 j& {+ p# M - }
: c: E q; Q* {; _) S6 e - });5 k4 x( D- ^! V3 u; d4 Q' p
1 \6 E! K: ?6 G* z& D- });
! X4 X6 t: i( t+ J% p Y$ H - </script># n _$ h0 ^: _" B1 I
- </head>. S6 @4 m6 {6 y) T6 }5 W
- <body>
" g, a, U+ R [ X* G7 B - <div>5 _/ p* w3 K1 j# n: A
- <input id="user" type="text" />% p" Z5 W4 [/ b( D0 f3 k: n% C
- <input id="conn" type="button" value="连接" />' v$ N. V H" w
- <input id="close" type="button" value="关闭"/><br />" a3 F6 ~* U% T( G5 G* ^$ N" }5 L
- <span id="tips"></span>3 t5 i- l# E* p# C4 s2 q
- <input id="content" type="text" />
* t7 g a3 U0 H" P$ P - <input id="send" type="button" value="发送"/><br />' w+ B" s6 C( [( J
- <input id="to" type="text" />目的用户2 h4 i6 M! n" A( H
- <div id="msg">
* D ]) Y, H& }; x - </div>
( I# b! S: n% k. J q: a5 j- w - </div>
, \1 |1 @; D; t! |8 r8 X - </body> C4 c: P1 C! b* G4 [/ \" h# I6 O. P
- </html>
复制代码2.客户端A和客户端B通信效果
在浏览器中分别打开两个窗口,左边为客户端A,右边为客户端B,点击“连接”按钮,AB客户端分别与服务器建立连接
填写要发送的内容,即可看到A和B互相发送的信息了,即实现了AB客户端实现了WebSocket即时通信。
$ g Y* d, W! P% [" S N2 R
| 欢迎光临 cncml手绘网 (http://www.cncml.com/) |
Powered by Discuz! X3.2 |