<!DOCTYPE html> <html> <head> <title>WebSockete Demo</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> <script type="text/javascript"> //验证浏览器是否支持WebSocket协议 if (!window.WebSocket) { alert("WebSockeet not supported by this browser!"); } var ws; function display() { ws = new WebSocket("ws://localhost:8080/examplesXml/websocket"); //监听消息 ws.onmessage = function(event) { log(event.data); } //关闭WebSocket ws.onclose = function(event) { } //打开WebSocket ws.onopen = function(event) { ws.send("Hello,Server"); } ws.onerror = function(event) { } } var log = function(s) { if (document.readyState !== "complete") { log.buffer.pust(s); } else { document.getElementById("contendId").innerHTML += (s + "\n"); } } function sendMsg() { var msg = document.getElementById("messageId"); ws.send(msg.value); } </script> </head> <body onload="display();"> <div id="valueLabel"></div> <textarea rows="20" cols="30" id="contendId"></textarea> <br /> <input name="message" id="messageId" /> <button id="sendButton" onClick="javascript:sendMsg()">Send</button> </body> </html>
客户端代码-新建index.html,代码如上。
package cn.jess.websocket; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.catalina.websocket.MessageInbound; import org.apache.catalina.websocket.StreamInbound; import org.apache.catalina.websocket.WebSocketServlet; import org.apache.catalina.websocket.WsOutbound; public class EchoServlet extends WebSocketServlet { /** * */ private static final long serialVersionUID = -2581942001009336822L; //private static final Logger log = Logger.getLogger("EchoServlet"); private static List<MessageInbound> socketList = new ArrayList<MessageInbound>(); // privat static final long ser private static List<WebSocketMessageInbound> connsList = new ArrayList<WebSocketMessageInbound>(); protected StreamInbound createWebSocketInbound(String subProtocol,HttpServletRequest request){ return new WebSocketMessageInbound(); } public class WebSocketMessageInbound extends MessageInbound{ protected void onClose(int status){ super.onClose(status); socketList.remove(this); } protected void onOpen(WsOutbound outbound){ super.onOpen(outbound); socketList.add(this); } //@Override protected void onBinaryMessage(ByteBuffer message) throws IOException { // TODO Auto-generated method stub System.out.println("onBinarymessage"); } @Override protected void onTextMessage(CharBuffer message) throws IOException { // TODO Auto-generated method stub for(MessageInbound messageInbound : socketList){ CharBuffer buffer = CharBuffer.wrap(message); WsOutbound outbound = messageInbound.getWsOutbound(); outbound.writeTextMessage(buffer); outbound.flush(); } } } }
以上是服务器端的代码。
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>websocket</servlet-name> <servlet-class>cn.jess.websocket.EchoServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>websocket</servlet-name> <url-pattern>/websocket</url-pattern> </servlet-mapping> </web-app>
web.xml文件的配置。
相关推荐
本项目是一个基于Spring Boot集成WebSocket的服务端示例,旨在演示如何实现一个能够主动与前端通信的系统。Spring Boot是Java领域内广泛使用的微服务框架,它简化了Spring的应用开发,提供了快速构建应用程序的能力...
总之,这个基于Maven的WebSocket实例展示了如何利用Java、Maven和Tomcat7创建一个简单的WebSocket聊天应用。通过这种方式,开发者可以构建高度交互的Web应用程序,如在线游戏、实时股票报价、协作工具等,这些应用对...
在本文中,我们将深入探讨如何在Spring 4框架中整合WebSocket技术,并且通过XML配置来实现这一功能。WebSocket协议提供了一种低延迟、双向通信的机制,使得服务器和客户端能够实时交互数据,非常适合构建实时应用,...
Java WebSocket 是一种基于Java语言实现的WebSocket协议库,主要用于实现在Web应用中提供实时的双向通信功能。WebSocket协议是HTML5规范的一部分,它允许客户端和服务器之间建立持久性的连接,从而实现数据的双向推...
1. 添加WebSocket依赖:在`pom.xml`中引入Spring Websocket相关依赖,如`spring-boot-starter-websocket`。 2. 配置WebSocket:在`application.yml`或`application.properties`中配置WebSocket的相关端点,如`...
这个实例是基于Java技术,并在Tomcat 7服务器上运行,兼容JDK 1.7环境。以下是关于WebSocket在Java中的实现以及相关知识点的详细解释: 1. **WebSocket协议**:WebSocket协议是HTML5的一个特性,它通过TCP连接提供...
【描述】"springboot-websocket-demo"项目是一个教学或实践用的实例,它展示了如何在基于Spring Boot的Java应用程序中启用和使用WebSocket技术。WebSocket是一种在客户端和服务器之间建立长连接的协议,允许双方实时...
1. **WebSocket服务器端点(Server Endpoint)**:通过使用`@ServerEndpoint`注解,我们可以定义一个WebSocket服务器端点类。这个类的实例将代表服务器上的一个WebSocket连接。例如: ```java @ServerEndpoint("/...
1. 选择合适的WebSocket草案:不同的WebSocket库可能支持不同的草案,如Draft_17、Draft_6455等。确保选择的草案与目标服务器兼容。 2. 异常处理:确保正确处理网络异常、消息解析错误等,保持程序的健壮性。 3. ...
1. **创建WebSocket服务器端**:在Java中,可以通过实现`javax.websocket.OnMessage`、`OnOpen`和`OnClose`等接口来创建WebSocket服务器端点。 2. **创建WebSocket客户端**:客户端通常通过JavaScript的`WebSocket`...
在本实例中,我们将探讨如何利用Java实现基于WebSocket的聊天应用。 首先,我们要理解WebSocket的基本原理。WebSocket是HTML5的一个新特性,通过创建一个持久性的连接,使得实时通信成为可能。它通过HTTP/1.1协议的...
在这个WebSocket实例中,Maven配置文件(pom.xml)将定义项目依赖,如WebSocket库,以及构建和运行的指令。 7. **实际应用**: 在实际开发中,WebSocket还可以结合其他技术,如Spring Framework的WebSocket支持,...
这个实例是基于Java Web的WebSocket实现,适用于Tomcat 7.0.55及以上版本。 在Java Web中实现WebSocket,首先需要了解以下几个核心概念: 1. **WebSocket API**:Java提供了一个WebSocket API,允许开发者创建...
WebSocket是一种在客户端...总之,基于WebSocket的聊天室源码是一个结合了Java后端、前端JavaScript、HTML和CSS的综合项目,它展示了WebSocket如何实现实时通信,并为开发者提供了一个学习和实践WebSocket技术的实例。
1. **添加依赖**:在`pom.xml`文件中,需要引入Spring Websocket的相关依赖。这通常包括`spring-boot-starter-websocket`和`spring-boot-starter-actuator`,后者用于提供健康检查和其他监控功能。 ```xml ...
1. **服务器端**:使用WebSocket API创建一个WebSocket服务器端点,监听特定的WebSocket URL。当客户端连接时,服务器会创建一个连接实例,用于后续的数据交换。 2. **客户端**:在浏览器端,JavaScript代码负责...
总的来说,创建一个基于Javax的WebSocket服务器涉及到设置项目依赖、编写WebSocket端点类、配置Servlet以及启动服务器。这个过程可以通过Maven项目(如"MavenWebSocketServer")进行管理,使得开发和部署更加方便。
1. **选择WebSocket库**: - Android平台上常见的WebSocket库有Socket.IO、OkHttp-WebSocket-Client、Autobahn等。这里我们以OkHttp-WebSocket-Client为例,因为它与OkHttp结合紧密,使用起来相对简单。 2. **集成...
2. **连接**: 使用WebSocket实例的`connect()`方法来建立到服务器的连接。这个过程可能涉及SSL/TLS握手,如果服务器要求安全连接。 3. **握手协议**: WebSocket连接建立时,客户端会发送一个HTTP升级请求到服务器,...
通过`new WebSocket("ws://服务器地址/路径")`创建一个新的WebSocket实例,并监听`open`、`close`、`message`事件来处理连接状态变化和接收服务器发送的数据。 4. **通信** - 一旦连接建立,可以通过`WebSocket....