SpringMVC入门 - webSocket

本文通过SpringMVC的websocket模块,演示了一个简单的聊天室应用,介绍如何实现服务器与浏览器之间的双向通信。内容包括配置pom.xml依赖、设置握手接管器、处理器、配置类以及前端JS的websocket回调处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于传统HTTP协议主要是拉取消息,因此一些需要服务器主动推送消息的功能就难以实现,传统上是采用AJAX轮询、长轮询等方法;现在则可以采用webSocket来优雅地实现浏览器和服务器间的双向通信机制。
本demo主要实现了一个简单的聊天室,加入网页的游客可以一起聊天(消息广播)。服务端主要利用了spring的websocket模块,浏览器可以直接利用JS,两端都尽量采用较新的版本。
1、pom.xml依赖

		<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-websocket</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-messaging</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>

2、roomHandlerInterceptor握手接管器
当有新的握手连接请求时,可以自定义握手前后的一些处理动作。

package gensoku.myWebSocket;

import java.util.Map;

import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor;

public class roomHandlerInterceptor extends HttpSessionHandshakeInterceptor
{
   
    @Override
    public boolean beforeHandshake(ServerHttpRequest req, ServerHttpResponse res,
                        WebSocketHandler handler, Map<String, Object> attr) throws Exception
    {
   
        System.out.println("Before handshake");
        return super.beforeHandshake(req, res, handler, attr);
    }

    @Override
    public void afterHandshake(ServerHttpRequest req
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值