HTML5 WebSocket+Tomcat实现Web版即时聊天室

本文介绍了使用HTML5 WebSocket和Tomcat创建Web即时聊天室的方法,强调了开发环境需满足JDK1.7以上和Tomcat8,以支持基于注解的WebSocket协议。通过WebSocket实现全双工通信,避免了传统HTTP轮询的缺点。文中展示了前端界面和关键代码,并提供了服务器端的基本框架,展示了WebSocket的简单API。后续将探讨更复杂的单人聊天和在线状态显示功能。
摘要由CSDN通过智能技术生成

在开始之前开发环境
一定要满足JDK1.7以上和TOMCAT8(基于注解的方式)!
一定要满足JDK1.7以上和TOMCAT8(基于注解的方式)!
一定要满足JDK1.7以上和TOMCAT8(基于注解的方式) !
重要的事情说三遍!!!
*WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。
现很多网站为了实现即时通讯,所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客户端的浏览器。这种传统的HTTP request 的模式带来很明显的缺点 – 浏览器需要不断的向服务器发出请求,然而HTTP request 的header是非常长的,里面包含的有用数据可能只是一个很小的值,这样会占用很多的带宽。
而比较新的技术去做轮询的效果是Comet – 用了AJAX。但这种技术虽然可达到全双工通信,但依然需要发出请求。*
使用WebSocket的时候请求头为

GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: http://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13 

这个请求头比不同的多出了一个Upgrede,如果链接成功服务器返回的状态码不是200而是101(101 Switching Protocols)

101 Switching Protocol (切换协议) 服务器已经理解了客户端的请求,并将通过Upgrade消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到 在Upgrade消息头中定义的那些协议。: 只有在切换新的协议更有好处的时候才应该采取类似措施。例如,切换到新的HTTP版本比旧版本更有优势,或者切换到一个实时且同步的协议以传送利用此类特 性的资源。

响应头为:

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Protocol: chat 

使用WebSocket我们可以自己开发简易的聊天室,服务器的推送等等!
废话少说,开始制作聊天室!!!!
文章刚开始的环境一定要满足,因为使用的是@ServerEndpoint,Tomcat8支持这个注解,先把前台代码补上

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值