8

请问用java和tomcat开发WebSocket应用,Java中其它类如何通过特定的WebSocket类向特定...

 3 years ago
source link: https://ask.csdn.net/questions/7523657
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
豆汁拌咖啡 2021-10-03 14:13
采纳率: 0%

请问用java和tomcat开发WebSocket应用,Java中其它类如何通过特定的WebSocket类向特定Session的网页用户发送消息?

我现在在用java8和Tomcat9开发一个WebSocket通讯应用。假设我的服务器端java程序已经有了A、B和C三个class。现在我希望通过一个专门的WebSocket类的class来和网页的用户进行通讯。接收信息当然是没有问题的,用WebSocket类的@OnMessage()函数就可以了。但是如何让A、B和C类能够通过WebSocket类向网页的客户端发送信息呢?因为WebSocket类是Tomcat在接收到网页的信息后通过@ServerEndpoint和@OnMessage等直接调用的,在我自己的服务器端java程序中并没有实例化WebSocket类的对象。所以我在A、B和C等其它类中无法直接调用WebSocket类向网页特定Session的用户发送信息。所以我想请教各位,如何让其它类都通过WebSocket类这一个类来向网页特定Session的用户发送信息。是把Session对象传给ABC这三个类吗?还是其它什么方法?不要告诉我ABC这三个类每个都要建立一个@ServerEndpoint啊,感觉那样太Low了,而且以后也不方便扩展。
我的服务器端java程序大体如下:

1条回答 默认 最新

  • 两个猕猴桃 2021-10-03 14:58

    做一个WebSocketMananger单例,
    客户端打开websocket连接后,保存客户端的sid和session到WebSocketMananger。
    其他的类想发送消息的时候,指定sid和要发送的消息,由WebSocketMananger来发送即可。

    WebSocketServer.java

    WebSocketManager.java

报告相同问题?

提交 关注问题

相关推荐 更多相似问题

  • 回答 2 已采纳 要心跳机制让他持续连接,检测到断开就重连,不然一段时间后可能因服务器tcp keeplive防火钱等等会断开的。
  • 回答 3 已采纳 通过websocket获得数据,判断数据是否为0,为0就让他显示在em这个控件上并为其设置css 属性 display:block,否则的话就设置 css 属性 display:none,大概是这个
  • 回答 1 已采纳 错误提示:Connect to dysmsapi.aliyuncs.com:80 [dysmsapi.aliyuncs.com/106.11.45.35] failed: connect timed
  • 饼条豪侠的博客 近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展了浏览器与服务端的通信功能,使服务端也能主动客户端发送数据。 我们知道,传统的HTTP协议是无状态的,每次请求...
  • 慕容囧囧的博客 使html5webSocket开发一个网页版聊天室(后台使java)
  • 袁泽浩的博客 script type="text/javascript" src="${ctxStatic}/websocket/sockjs-0.3.4.min.js"></script> javaScript function websocketStart(){ var websocket = null; //获取主机地址之后...
  • 回答 1 已采纳 首先,你看下这个websocket请求响应的内容是什么呢?前段调试模式下看看network这个请求响应内容。 其次,从js错误信息来看,你的js代码有问题chat.socket这个属性没有赋值,应该
  • 回答 2 已采纳 属性命名不符合命名规范,首字母大写时,部分框架底层做属性映射时映射不上,可以参考下java命名规范,避免出现这种错误;
  • 回答 2 已采纳 报错信息很明显,date在查询时映射的型转换问题,应该是这一设置的这个,上网查查
  • 纳川121的博客 注意:websocket只有tomcat7.4.5以上才支持 可以google插件来测试 所需要jar包 <!--websocket--> <dependency> <groupId>javax</groupId> <artifactId>javaee-api&lt...
  • 怦然我的心动的博客 WebSocket的学习以及使首先,旧版本的Tomcat 不能支持WebSocket, 至少需要 7.0.47 以上才可以;其次,创建BitCoinServer注解@ServerEndpoint("/ws/bitcoinServer")把它标记为一个WebSocket ...
  • nableLiao的博客 公司大屏需要ue4连接Java后端,因为公司同事之前都没有写过似的,所以这个任务就理所当然的的给到了我这个新人上,一开始就决定使WebSocket连接,一开始以为会很难,查看了一天的资料,发现其实挺简单的,只是...
  • 回答 1 已采纳 重新编译下项目看看路径下有没有 Log 文件了。
  • 回答 2 已采纳 错误描述是找不到 如果本地可以运行 服务器不行看看是不是你打包的时候这个没有打包进去 把打好的jar打开看看 ![图片说明](https://img-ask.csdn.net/upload/2
  • 回答 2 已采纳 把项目重新编译,再运行
  • 王星星的魔灯的博客 常见的webSocket有多种实现方式,如SpringBoot+tomcat,或者是springboot+netty 使方式 以下的代码均是基于Spring+tomcat 首先会在socket那里协商ServerEndPoint注解,然后注解出几个方法,如@BeforeHa.
  • CodingSir的博客 后台攻城狮前端攻城狮一起开发时,经常受到前端攻城狮的骚扰,动不动就来一句,那谁,帮我看一下接口访问出什么错了。。。我刚刚上传的参数过来了吗。。。你返回的是什么。。。我请求过去了吗。。。 好吧,就是...
  • 清墨迹染的博客 配置 package com.yupont.xc.config; import org.apache.catalina.session.StandardSessionFacade; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation....
  • 回答 7 已采纳 第一:检查mysql-connector-java.jar包版本,是不是8.0.11版本的或者8.0版本的,是的话改成5.0.x版本的。 第二:jdbc.url=jdbc:mysql://local
  • qq_39686941的博客 JSR356标准Java WebSocket的使示例(Tomcat9.0.6) 一、前言 传统的HTTP协议是无状态的,每次请求(request)都要由客户端(如 浏览器)主动发起,服务端进行处理后返回response结果,而服务端很难主动客户端...
  • 没有解决我的问题, 去提问

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK