【Java使用WebSocket】教程文章相关的互联网学习教程文章

Java搭建WebSocket的两种方式【图】

下面分别介绍搭建方法:一、直接使用Java EE的api进行搭建。一共3个步骤:1、添加依赖<dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope></dependency>2、使用注解@ServerEndpointimport javax.websocket.*;import javax.websocket.server.PathParam;import javax.websocket.server.ServerEndpoint;import java.io.IOException;import java....

初识websocket以及java服务端的简单实现【图】

概念:WebSocket是一种在单个TCP连接上进行全双工通信的协议。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输 背景:很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给...

基于JavaServer为后端的WebSocket双向通信工程

重点  1、JAVA内的WebSocket是在Java jar7.0之后才能使用的。  2、需要在JavaServer项目lib目录下引入 javaee-api-7.0 包  |前端代码  |后端JAVA代码  package websocketPro;  import javax.websocket.OnClose;  import javax.websocket.OnMessage;  import javax.websocket.OnOpen;  import javax.websocket.Session;  import javax.websocket.server.PathParam;  import javax.websocket.server.ServerEnd...

java-使用Netty将Websockets与运行在Tomcat中的Spring Web App集成

我有一个使用Netty的Web套接字服务器实现(例如在端口8081上监听)和在Tomcat中运行的单独的Spring Web应用程序(在端口80中运行). 我想以某种方式将所有来自localhost:80 / Websocket的请求转发到端口8081上的我的Netty服务器.这有可能吗?由于Tomcat和spring是基于http协议构建的,因此idk怎么可能. 我要做的就是使用现有Spring Web应用程序中的websocket启用服务器推送.有什么建议么?解决方法:最简单的方法可能是将Nginx服务器放在...

java-Jetty Websockets的通用编码器和解码器【代码】

如果我使用resteasy,则可以使用resteasy-jackson-provider,该处理程序将我的对象编组为JSON并返回我的其余端点,例如:@GET @Path("/") @Produces({MediaType.APPLICATION_JSON}) public MyThing getSingle() {return new MyThing(); }这很好,因为这意味着我不需要为每种类型都指定编码器-Jackson会处理它. 我现在正在学习网络套接字,我发现我必须提供编码器:@ServerEndpoint(value = "/websocket", encoders = {MyThingEncoder.cl...

Java-https:// websocket无法连接android【代码】

我已经连接了套接字http://(带端口)url完整并且可以正常工作,但是我已经连接了https://(没有端口)在Java-WebSocket中不起作用. 我使用gradle依赖’org.java-websocket:Java-WebSocket:1.3.0′WebSocketClient mWebSocketClient = new WebSocketClient(uri) {@Overridepublic void onOpen(ServerHandshake serverHandshake) {Log.e(TAG, "Websocket: " + "Opened");mWebSocketClient.send("Hello from " + Build.MANUFACTURER...

java-如何使用Spring 5 Reactive WebSocket检测断开连接的客户端【代码】

我设法使用Spring 5 Reactive WebSocket支持(Chapter 23.2.4)创建了一个WebSocketHandler.接收和发送一切正常.但是,我不知道如何检测客户端断开连接.调试客户端断开连接时,它会在HttpServerWSOperations类(netty.http.server包)的服务器端停止,并在其中检测到CloseWebSocketFrame. 任何建议如何处理客户端断开连接?解决方法:我在反应式org.springframework.web.reactive.socket.WebSocketHandler中实现了关闭事件处理程序,如下所示...

java-在Struts 2中使用WebSocket API【代码】

我有一个运行在Tomcat 7.0.43上的Struts2 Web应用程序,该应用程序使用Rest和Convention插件来映射所有请求. Struts尝试自己映射所有请求. JSR 356使用如下注释来定义服务器端点@ServerEndpoint(value = "/websocket/chat")现在,当浏览器尝试连接到ws:/127.0.0.1:8080 / websocket / chat时,该请求将失败,因为Struts映射器会拦截该请求. 我可以在XML文件中指定什么内容,以使请求到达正确的位置? 编辑: 按照建议,我添加了<consta...

javax Websocket处理ping消息【代码】

我在Glassfish 4上部署了一个websocket服务器.我尝试使用ping / pong.我的计划是定期从服务器向客户端发送ping命令,如果他们不回击,我想关闭连接.不幸的是似乎没有任何东西@OnMessage public void onMessage(PingMessage pingMessage)在javax.websocket.ClientEndpoint或ServerEndpoint中. 或任何其他回应ping消息的方式.出于某些非常奇怪的原因,当我在Eclipse中部署服务器时,即使从未在客户端中实现它,我也会收到pong消息.但是,当...

java-无法使用Tomcat和Maven的tomcat7-websocket插件启动WebSocket容器【代码】

我试图获得支持WebSocket的Tomcat服务器(7.0.54),并且很难部署它.我有一个简单的端点: @ServerEndpoint(值=“ /测试”)公共类TestEndpoint { 为了处理此端点,我需要包含一个容器(该容器使用ServiceLoader启动,使用端点注释对所有类进行内省等等).我使用以下内容: <依赖关系> < groupId> org.apache.tomcat< / groupId> < artifactId> tomcat7-websocket< / artifactId> < version> 7.0...

java-我可以在同一实例中使用WebSocketHandler运行WebAppContext吗?【代码】

是否可以同时运行WebSocketHandler和WebAppContext?我正在使用最新版本9.2.1.v20140609.我在下面尝试了配置,但是在Websocket上调用localhost:8080 / WebAppContext截获了调用.这是我的启动器:public static void main(String[] args) throws Exception {ServerConnector connector = new ServerConnector(server);connector.setPort(8080);server.addConnector(connector);WebAppContext context = new WebAppContext("webapp",...

javax.servlet.Filter会拦截Websocket消息吗? (Java Servlet API)

当我有一个websocket连接时,说“ / ws” “ / ws”路径上的常规javax.servlet.Filter是否将每个消息作为常规http请求拦截?它会仅拦截第一个请求(作为握手的一部分吗?) 如果不是,那我该如何对Websocket消息进行过滤? 我没有在规范中找到任何细节.解决方法:不,Servlet筛选器不会捕获WebSocket消息. Servlet根本不支持WebSocket协议.您唯一可以做的就是注册HttpUpgradeHandler(请参阅HttpServletRequest#upgrade),然后在其之上实现...

Java Websocket上网后如何发送离线用户的消息?【代码】

我正在尝试使用webcocket编写聊天,对于脱机用户,我使用了Java Queue,如果用户脱机,则将消息保存在队列中,当用户上线时,我检查Queue是否为空,如果不是,则使用循环删除队列中的每个消息.问题是即使所有消息都在队列中,它也只会向用户发送最后一条消息,这是我的onOpen方法:@ServerEndpoint(value = "/chat/{room}/{user}", encoders = ChatMessageEncoder.class, decoders = ChatMessageDecoder.class)public class ChatEndpoint {pr...

java-使用WebSockets的IBM Watson语音到文本【代码】

我正在尝试使用Watson Developer Cloud Java SDK转录大型音频文件.我尝试了Sessionless方法,并且效果很好,但是当我尝试WebSockets方法时,事情变得不可靠了. 在大多数情况下,该方法只会在没有将SpeechResult传递给委托人的情况下返回.它很少会起作用,但只会在最初的几秒钟内记录下来. 这是我的代码如下所示:static SpeechResults transcript = null; private static String SpeechToText(String audioFile) throws FileNotFoundExc...

java-嵌入式tomcat 8.0.21中的Spring Websocket【代码】

我想基于一个示例创建一个WebSocket.唯一的问题是我在嵌入式tomcat中运行我的应用程序.package com.test.websocket;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.socket.CloseStatus; import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.WebSocketSession; import org.springframework.web.socket.handler.AbstractWebSocketHandler;public...