websocket是用来干什么的,具体的请自行百度。
本文实现一个简单的websocket的入门小例子,实现客户端发送一句换,服务器端返回。即一个简单的交互。
一、服务器端的实现
1.创建一个类实现ServerApplicationConfig接口
2.编写一个后台websocket服务类,使用@ServerEndpoint注解标注。
第一步代码:
/** * 该类在服务器启动时,会自动执行 * * @author huan * */ public class EchoConfig implements ServerApplicationConfig { private Logger log = Logger.getLogger(EchoConfig.class); /** * 基于注解的实现方式,<br /> * classess 中的类是实现了有@ServerEndpoint标注的类 */ @Override public Set<Class<?>> getAnnotatedEndpointClasses(Set<Class<?>> classes) { log.info("服务器启动..."); for (Class<?> clazz : classes) { log.info("加载的websocket服务类:" + clazz.getName()); } return classes; } /** * 基于接口的实现方式 */ @Override public Set<ServerEndpointConfig> getEndpointConfigs(Set<Class<? extends Endpoint>> arg0) { return null; } }
第二步代码:
@ServerEndpoint("/echo4me") public class EchoServer { private static Logger log = Logger.getLogger(EchoServer.class); public EchoServer() { } @OnOpen public void open(Session session) throws IOException { log.info("一个客户端建立连接: websocket session id -> " + session.getId()); if (session.isOpen()) { session.getBasicRemote().sendText("欢迎建立连接."); } } @OnClose public void onClose() { log.info("websocket关闭."); } @OnMessage public void onMessage(Session session, String msg) { log.info("客户端发送的消息:" + msg); if (session.isOpen()) { try { session.getBasicRemote().sendText("服务器返回的数据:"+msg); } catch (IOException e) { e.printStackTrace(); } } } }
注意:1、上面的类中必须要有一个无参数的构造器方法
2、方法中的参数 session 并不是httpsession,而是websocket中的session
3、@ServerEndpoint("/echo4me")标注的类不用再配置中配置,它表示一个websocket的服务端,echo4me表示访问的路径, 即访问路径为:http://localhost:端口/项目部署名/echo4me
4、@OnMessage表示客户端发送消息过来时触发。
二、前台的写法:
1.创建websocket请求,
2.打开请求
3.发送数据
js部分:
<script type="text/javascript"> var ws = null; function openConnection(){ var target = "ws://localhost:8080/study-websocket/echo4me" if ('WebSocket' in window) { ws = new WebSocket(target); } else if ('MozWebSocket' in window) { ws = new MozWebSocket(target); } else { alert('WebSocket is not supported by this browser.'); return; } console.info('连接websocket成功.'); ws.onopen = function(){ } ws.onerror = function(e){ console.info("发生错误:"); console.warn(w); } ws.onmessage = function(e){ $('#serverReturnData').val($('#serverReturnData').val()+e.data); } ws.onclose = function(e){ console.info("websocket关闭"); console.log(e); } } $(function(){ /** 发送数据到服务器端 */ $('#sendBtn').on('click',function(){ var val = $('#sendData').val(); if(val){ if(ws){ ws.send(val); }else{ alert('请先创建websocket连接.') } }else{ alert("请输入要发送给服务器端的数据."); } }) }); </script>
注意:此处的url为 echo4me为@ServerEndpoint注解中value属性的值
var target = "ws://localhost:8080/study-websocket/echo4me"
html代码部分:
<button id="openWebsocket" onclick="openConnection()">连接服务器:</button><br/> 发送数据到服务器:<input id="sendData" /><input type="button" id="sendBtn" value="发送"/> <br/> 服务器返回的数据:<input id="serverReturnData" style="width: 100%;color: red;"/>
到此,前后台都实现。
前后台交互的图片
相关推荐
在这个"WebSocket使用案例"中,我们可以预期会了解到以下关键点: 1. **WebSocket握手**:WebSocket连接的建立始于客户端发起一个HTTP Upgrade请求,服务器回应101 Switching Protocols状态码,表示同意升级到...
websocket
本案例中的"WebSocket小案例.rar"是一个C#实现WebSocket的简单项目,可能包括了前后端的代码示例,用于教学或演示如何在C#中集成WebSocket功能。 在前端,通常使用JavaScript的WebSocket API来创建WebSocket对象,...
Python-WebSocket爬虫案例详解 在本篇文章中,我们将详细介绍Python-WebSocket爬虫案例的实现原理和代码实现。WebSocket是一种实时通信协议,允许服务端主动推送消息到客户端,实现了实时更新的功能。在爬虫领域中...
在"websocket入门demo"中,我们将会探讨WebSocket的基本使用方法和实现过程。这个项目包含了WebSocket服务端和客户端的代码示例,可以帮助初学者快速理解WebSocket的工作原理和应用。 1. **WebSocket协议概述**:...
WebSocket 的入门Demo!
该项目采用springboot+websocket 实现聊天小案例。 包括 springboot+websocket 实现服务端代码、html5 连接websocket客户端、springboot后台连接websockete客户端代码。
在本文中,我们将深入探讨WebSocket项目案例,尤其是如何利用WebSocket来实现图文直播功能。 WebSocket API设计用于双向通信,这意味着服务器可以主动向客户端推送数据,而不仅仅是响应客户端的请求。这与传统的...
在数据实效性要求更高的今天,实时通讯成为必然,webSocket为浏览器提供了解决方案,而现在基本所有浏览器都对其进行了支持,其...本案例针对webSocket的使用提供了完整案例,下载后便可以直接运行使用,为入门提供便利
总的来说,WebSocket入门实战工程涵盖了网络编程、前后端通信、协议解析等多个方面,对于提升Web应用的实时性能和用户体验具有重要意义。通过实际操作,我们可以深入理解WebSocket的工作原理,进而构建高效、可靠的...
node+websocket入门实例,在谷歌测试成功。 1) 安装nodejs。 2) 执行cmd进入命令窗口,cd websocketdemo目录。 3) node server.js 4) 双击client.html显示页面。 5)输入信息,点击send。
WebSocket入门教程(三)-- WebSocket实例:实时获取服务器内存使用情况, 详解:http://blog.csdn.net/u010136741/article/details/51581298
WebSocket 入门
WebSocket入门教程(四)-- WebSocket实例:实时获取服务器内存使用情况(优化一)详解:http://blog.csdn.net/u010136741/article/details/51590619
本案例将详细介绍如何利用Spring框架来开发WebSocket服务,实现点对点的聊天功能。 首先,我们需要在项目中引入Spring Websocket的相关依赖。这通常包括Spring Framework的核心模块以及Spring Websocket模块。在...
《Spring WebSocket 中文注释案例详解》 在现代Web开发中,实时通信功能变得越来越重要,Spring框架提供了WebSocket支持,使得服务器与客户端可以进行双向通信,实现高效、低延迟的数据交换。本文将深入探讨一个...
V3-websocket项目案例下载demo
运行这些WebSocket小案例时,你需要将项目部署到Tomcat 7服务器上。由于WebSocket在Tomcat 7中是默认支持的,但如果你的服务器环境中已经存在其他版本的WebSocket库,可能会出现冲突。因此,描述中提到的“如果你要...
Unity Websocket 聊天室案例是一个典型的即时通讯(IM)应用,利用Unity游戏引擎结合WebSocket网络协议,实现跨平台的聊天功能,包括在WebGL平台上运行。WebSocket是一种在客户端和服务器之间建立长连接的协议,它...
在本案例中,我们可能会使用Ratchet来创建WebSocket服务器端,因为它提供了易于理解和使用的API。 1. **Ratchet库的使用**: - 安装:通过Composer添加`cboden/ratchet`到项目依赖。 - 创建服务器:定义一个类,...