`

使用tomcat方式实现websocket即时通讯服务端讲解

 
阅读更多

使用tomcat方式实现websocket即时通讯服务端讲解

第一种方案:使用Tomcat的方式实现

tomcat版本要求:tomcat7.0+。需要支持Javaee7

导入javeee-api的jar(如果已经引入可以忽略):

pom.xml中加入:

 <dependency>

      <groupId>javax</groupId>

      <artifactId>javaee-api</artifactId>

      <version>7.0</version>

      <scope>provided</scope>

 </dependency>

一:几个重要的注解(方法):

1.1:@ServerEndpoin():

声明这是一个websocket服务;

需要指定访问该服务的地址。

在地址中可以指定参数,需要使用{}进行占位。

注解使用位置:类上面

示例:

@ServerEndpoin("/websocket/{userId}")

public class myTest(){

}

1.2:@OnOpen:

该方法将在建立连接后执行,会传入session对象;

可以通过@PathParam来获取url声明中参数

注解使用位置:方法中

用法示例:

public void onOpen(Session session,@PathParam("userId") Integer userId) throws IOExcepthon{}

1.3:@OnClose:

该方法是在连接关闭后执行的

注解位置:方法上

使用示例:

public void onClose(){}

1.4:@OnMessage:

该方法用于接收客户端发来的消息

参数:

message:发来的消息数据

session:会话对象(也即是通道)

注解位置:方法

示例用法:

public void onMessage(String message,Session session) throws IOException{}

1.5:@OnError:

出错的时候访问的。

注解位置:方法上

使用示例:

public void onError(Session session,Throwable error){}

1.6:给客户端返回消息(或是给客户端发送消息):

使用session对象的getBasinRemoter().sendTest()方法

用法示例:

session.getBasicRemoter().sendText("您发送的消息已经收到了");

二:根据上面几个重要方法,编写客户端代码:

@OnOpen

public void onOpen(Session session, @PathParam("userName") String userName) throws IOException {

log.info("=== 打开连接了===");

session.getBasicRemote().sendText("欢迎:"+userName+"访问系统");

}

@OnMessage

public void onMessage(String message,Session session, @PathParam("userName") String userName) throws IOException {

log.info("==接收到客户端发来的消息是:{}",message);

session.getBasicRemote().sendText("您好:"+userName+" 您发送的消息"+message+",系统已经收到....");

}

访问效果:

说明:websocket访问的协议是ws://而非http://

上图中:橙色的是我发送的,下面对应的就是系统返回的。

查看服务器日志打印:

我们可以看到,通信已经建立了。代码已经放在git上了。欢迎大家一起学习。

下节预告:下节我们将使用spring框架来整合websocket的

分享到:
评论

相关推荐

    基于springboot实现websocket客户端和服务端

    使用Springboot集成的websocket需要使用到以下几个类/接口: WebSocketHandler:WebSocket消息以及生命周期事件的处理器。 WebSocketConfigurer:对WebSocket进行配置,包括配置拦截器、配置接口地址。 ...

    C#WebSocket客户端及服务端Demo源代码

    在C#中,可以使用.NET Framework或.NET Core来实现WebSocket客户端和服务端的开发。下面将详细介绍C# WebSocket客户端和服务端的实现,以及源代码中的关键知识点。 **一、WebSocket简介** WebSocket协议是HTML5定义...

    C#_WinForm实现WebSocket及时通讯

    本项目是关于如何使用C#和WinForm来实现基于WebSocket的即时通讯。 首先,我们要理解C#的基础。C#是由微软开发的一种面向对象的编程语言,广泛应用于Windows平台的软件开发,包括桌面应用和服务器端应用。WinForm是...

    Android WebSocket实现即时通讯功能

    使用Java-WebSocket开源框架开发Android端即时通讯功能。主要功能: 1、与websocket建立长连接 2、与websocket进行即时通讯 3、Service和Activity之间通讯和UI更新 4、弹出消息通知(包括锁屏通知) 5、心跳检测和重...

    java实现websocket客户端与服务端的连接

    WebSocket是一种在客户端和服务器之间建立长连接...以上就是使用Java实现WebSocket客户端与服务端连接的关键知识点。实际应用中,还需要考虑异常处理、错误恢复、负载均衡、可扩展性等因素,确保系统的稳定性和可靠性。

    SSM框架实现WebSocket即时通讯

    在实现WebSocket即时通讯时,我们通常会使用Spring的WebSocket API和STOMP(Simple Text Oriented Messaging Protocol)协议。STOMP是一个简单的消息传输协议,适用于WebSocket,使得客户端和服务器间的数据交换变得...

    Tomcat WebSocket

    综上所述,要使用Tomcat实现WebSocket,你需要理解WebSocket的基本概念,配置Tomcat以支持WebSocket,编写WebSocket服务器端点代码,并在客户端使用适当的API与服务器进行通信。同时,还需要关注性能和安全方面的...

    使用QT进行websocket 客户端和服务端通讯示例

    本文将详细讲解如何使用QT进行WebSocket的客户端和服务端通信。 **一、QT与WebSocket库** 在QT中,我们可以使用`QtWebSockets`模块来实现WebSocket功能。这个模块包含两个主要类:`QWebSocket`(客户端)和`...

    c c++实现websocket服务器 c c++实现websocket客户端

    这个代码例子使用了c c++实现了websocket 开发 包含了websocket服务器和websocket客户端,拥有详细的解释 这个库比libwebsocket更加简单方便,比libsocket更加高效便捷.

    WebSocket客户端与服务端

    在"StriveEngine.SimpleDemo"这个示例中,可能包含了一个简单的WebSocket客户端和服务端的实现。客户端通常会使用JavaScript的WebSocket API来创建连接,发送和接收数据。服务器端则可以使用各种编程语言(如Node.js...

    Qt实现WebSocket客户端和服务端通信

    在Qt中,我们可以使用`QWebSocket`类来实现WebSocket的客户端和服务器端通信。`QWebSocket`是Qt网络模块的一部分,它为WebSocket协议提供了一个方便的API。 首先,我们来看客户端的实现。在Qt中创建一个WebSocket...

    c#、.NET6实现websocket协议服务端demo,完整清晰的解析和打包示例

    以上就是使用C#和.NET6实现WebSocket服务端的基本流程。通过理解WebSocket协议的细节和.NET6提供的API,你可以创建高效且可靠的WebSocket服务器,满足实时通信的需求。在实际项目中,你可能还需要考虑错误处理、性能...

    Delphi实现的WebSocket服务端

    总的来说,通过Delphi实现的WebSocket服务端,你可以学习到如何利用Delphi的网络编程接口来实现一个实时通信系统,这不仅加深了对WebSocket协议的理解,也为构建其他基于TCP/IP的网络应用奠定了基础。

    基于thinkphp5.1和workerman框架,HTML5的websocket即时通讯.zip

    在WebSocket即时通讯中,Workerman作为服务器端的支撑,能够处理WebSocket连接,实现与客户端的双向通信,确保数据的实时传输。 3. **HTML5**: HTML5是下一代HTML标准,其一大亮点就是提供了WebSocket协议,用于...

    WebSocket的Java和Tomcat7使用示例

    ### WebSocket的Java和Tomcat7使用详解 #### 一、WebSocket简介 ...为了改善这一状况,HTML5引入了WebSocket协议,这是一种在客户端...无论是即时通讯还是实时数据更新,WebSocket都能为用户提供更加流畅和及时的体验。

    unty websocket 客户端 服务端 通信

    本文将深入探讨如何使用WebSocketSharp来实现Unity中的WebSocket客户端与服务端通信。 一、WebSocketSharp简介 WebSocketSharp是一个开源项目,提供了对WebSocket协议的全面支持。它包括一个WebSocket客户端库,...

    webSocket客户端与服务端实例源码

    WebSocket客户端和服务端实例源码 WebSocket ws实例 HTML5 用java实现的服务端 Websocket与服务器的正常通信 可以用客户端测试任意语言的服务端...webSocket客户端使用Tomcat7以上 服务端只要有jdk7以上环境就可运行。

    用VS2017 C# 实现WebSocket的服务端和客户端源码.rar

    在这个项目中,我们看到的是使用Visual Studio 2017(VS2017)和C#语言实现WebSocket服务端和客户端的源代码。 1. **WebSocket协议基础** WebSocket协议是基于TCP的,它为Web应用程序提供了全双工通信能力。与HTTP...

    Tomcat9.0使用WebSocket实现点对点之间的聊天Demo

    本教程将通过Tomcat 9.0来演示如何使用WebSocket实现点对点的聊天功能。 首先,我们需要了解WebSocket的基础知识。WebSocket协议定义了一种在客户端和服务器之间建立持久连接的方法,允许双方进行双向数据传输。与...

Global site tag (gtag.js) - Google Analytics