JAVA实现简单的websocket网页回声(网页与服务器即时通讯)

本文介绍了WebSocket协议的基本概念及其在减少资源消耗方面的优势,通过一个简单的Java Web应用DEMO展示了如何建立WebSocket连接并实现服务器向客户端的实时消息推送。详细步骤包括配置类编写、服务器端和客户端代码实现。最后提到了Tomcat服务器中的WebSocket示例,鼓励读者自行探索学习。
摘要由CSDN通过智能技术生成

WebSocket简介

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

简而言之就是http协议只支持客户端(网页)请求,服务器响应,想要实现实时刷新数据就需要在JavaScript里定义定义轮询,每一段时间提交一次请求,服务器接收以后响应而实现实时刷新,但是这样特别浪费带宽和性能,一百个客户端就会有一百个死循环在持续请求

而websocket的出现很好的解决了这个问题,通过websocket协议可以实现服务器与客户端一次握手之后的长链接回话,实现了服务器主动推送消息给前台页面,从而替代了早期的网页轮询模式

说这么多其实websocket的用处很大,但是饭要一口一口吃,我们从一个小demo开始:

首先看一下效果:

在这里插入图片描述

左边的是eclipse编译器的控制台打印的消息,右边是网页显示

当项目在tomcat容器中运行的时候,访问localhost:8080/项目名/index页面的时候就会出现如图所示的网页
服务端连接成功会调用链接成功,支持多网页多链接访问,当客户端发送文字给服务器页面的时候,会打印在控制台上,服务器会将文字原封不动的返回回去,也就是echo回声.

实现环境:
tomcat8.5(版本必须大于7),JavaEE eclipse,jdk1.8

开始开发之前需要拷贝两个jar包,在tomcat lib 目录中有:
如图我选中的两个jar包:
在这里插入图片描述

实现步骤:

1.编写websocketconfig配置类,实现ServerApplicationConfig接口

package com.shenlan;

import java.util.Set;

import javax.websocket.Endpoint;
import javax.websocket.server.ServerApplicationConfig;
import javax.websocket.server.ServerEndpointConfig;


/**
 * websocket核心配置类,会在tomcat加载的时候启动
 * @author Oct.ca
 *
 */
public class WebSocketConfig implements ServerApplicationConfig{
   

	@Override
	public Set<Class<?>> getAnnotatedEndpointClasses(Set<Class<?>> arg0) {
   
		// TODO Auto-generated method stub
		System.out.println("----------------------");
		System.out.println("初始化加载的配置文件的个数 : "+arg0.size());
		return arg0;
	}

	@Override
	public Set<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值