使用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的

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

  1. Java Websocket实例【服务端与客户端实现全双工通讯】

    Java Websocket实例[服务端与客户端实现全双工通讯] 现很多网站为了实现即时通讯,所用的技术都是轮询(polling).轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发 出HTTP ...

  2. go 连接服务器 并存放图片_Go 在马蜂窝即时通讯服务建设中的实践

    即时通讯(IM)功能对于电商平台来说非常重要,特别是旅游电商. 从商品复杂性来看,一个旅游商品可能会包括用户在未来一段时间的衣.食.住.行等方方面面:从消费金额来看,往往单次消费额度较大:对目的地的陌 ...

  3. java SSM 框架 多数据源 代码生成器 websocket即时通讯 shiro redis 后台框架源码

    A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生 ...

  4. java代码编辑器 pdf文件预览 主流SSM 代码生成器 shrio redis websocket即时通讯

    获取[下载地址] QQ: 313596790 官网 http://www.fhadmin.org/ A 代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码 B 集成代码生成器 [ ...

  5. 代码生成器 websocket即时通讯 shiro redis 后台框架源码

    获取[下载地址]   QQ: 313596790 A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 ...

  6. php实现websocket即时通讯

    php实现websocket即时通讯 系统环境 环境配置 概述 websocket原理 php服务端 web客户端 开启Socket服务器程序 系统环境 centos 7 php5.6 环境配置 ph ...

  7. OpenIM:如何打造安全可靠的即时通讯服务

    即时通讯作为移动应用的常用组件,开发起来却并不简单,除了需要研究通讯协议,保证安全性,还要应对复杂的移动网络情况,以提供高可用性的服务.OpenIM是阿里巴巴推出的,集成于阿里百川项目中的移动端 IM ...

  8. 【什么是iMessage推送,im群发】苹果推iMessage是苹果公司为其设备用户提供的即时通讯服务

    iMessage是苹果公司为其设备用户提供的即时通讯服务,拥有一系列强大的功能和特点.然而,至今为止,苹果并未提供官方的群发部署功能.iMessage主要被设计为点对点的通信工具,即用户可以与一个或多 ...

  9. 基于开源jabber(XMPP)架设内部即时通讯服务的解决方案

    原文地址:基于开源jabber(XMPP)架设内部即时通讯服务的解决方案 作者:高傲的活着 Jabber 是著名的即时通讯服务服务器,它是一个自由开源软件,能让用户自己架即时通讯服务器,可以在Inte ...

最新文章

  1. Spring简单总结
  2. 【会议】2009-3-23
  3. 使用Docker 实现微服务并搭建博客,一文全掌握
  4. linux shell 原理,linux下shell的工作原理
  5. jq之animate() left font
  6. 关于phpexcel读取时间字段的格式不正确
  7. SpringMVC学习指南-前言
  8. 从winpe安装系统
  9. 关于 未受信任的企业级开发者 提示的解决
  10. sql还原数据库操作
  11. FPGA 光纤传输IP核的使用
  12. KGB Messenger解题流程
  13. 利用N2N内网穿透,并实现直连
  14. 小学带计算机2000的检讨书,小学生检讨书范文
  15. RuntimeError: xxx.pth is a zip archive (did you mean to use torch.jit.load()?)
  16. 【一致性仿真】Consensus Control of Leader-Following Multi-Agent Systems in Directed Topology With ...
  17. 计算机四种传播途径,计算机病毒的传播途径
  18. Java小游戏-幸运抽奖-进阶版(可多抽取多次)
  19. C语言:while与do while循环语句
  20. 6行代码实现对TF卡的读写功能

热门文章

  1. 美术学习2200:模型基础
  2. 太厉害了,用 CSS 实现一只自由飞翔的鸟儿
  3. 计算机组成原理乘法器实验报告,乘法器实验报告
  4. 常规赛:PALM眼底彩照视盘探测与分割202105-202205全时段第一名(得分0.97387)方案
  5. vue 中生成带logo的二维码vue-qr(可换背景) 利用qrcode生成二维码
  6. SVM 原理详细推导
  7. 苹果究竟对AI是怎么看的?现在终于有答案了
  8. STM32F407VET6之OV2640———— OV2640
  9. mpc台式计算机的功能是什么意思,mpc是什么意思_mpc怎么读_mpc翻译_用法_发音_词组_同反义词_multipurpose computer 多用途计算机-新东方在线英语词典...
  10. 2021年华为杯数模赛D题总结