`

websocket入门案例(echo)

阅读更多

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;"/>

 

 

到此,前后台都实现。

前后台交互的图片

 

 

  • 大小: 115.9 KB
分享到:
评论

相关推荐

    websocket使用案例

    在这个"WebSocket使用案例"中,我们可以预期会了解到以下关键点: 1. **WebSocket握手**:WebSocket连接的建立始于客户端发起一个HTTP Upgrade请求,服务器回应101 Switching Protocols状态码,表示同意升级到...

    WebSocket小案例.rar

    本案例中的"WebSocket小案例.rar"是一个C#实现WebSocket的简单项目,可能包括了前后端的代码示例,用于教学或演示如何在C#中集成WebSocket功能。 在前端,通常使用JavaScript的WebSocket API来创建WebSocket对象,...

    python-websocket爬虫案例.pdf

    Python-WebSocket爬虫案例详解 在本篇文章中,我们将详细介绍Python-WebSocket爬虫案例的实现原理和代码实现。WebSocket是一种实时通信协议,允许服务端主动推送消息到客户端,实现了实时更新的功能。在爬虫领域中...

    WebSocket入门实战工程

    WebSocket入门实战工程

    websocket入门demo

    在"websocket入门demo"中,我们将会探讨WebSocket的基本使用方法和实现过程。这个项目包含了WebSocket服务端和客户端的代码示例,可以帮助初学者快速理解WebSocket的工作原理和应用。 1. **WebSocket协议概述**:...

    WebSocket 的入门Demo

    WebSocket 的入门Demo!

    websocket项目案例

    在本文中,我们将深入探讨WebSocket项目案例,尤其是如何利用WebSocket来实现图文直播功能。 WebSocket API设计用于双向通信,这意味着服务器可以主动向客户端推送数据,而不仅仅是响应客户端的请求。这与传统的...

    springboot-websocket实战案例

    该项目采用springboot+websocket 实现聊天小案例。 包括 springboot+websocket 实现服务端代码、html5 连接websocket客户端、springboot后台连接websockete客户端代码。

    node+websocket入门实例

    node+websocket入门实例,在谷歌测试成功。 1) 安装nodejs。 2) 执行cmd进入命令窗口,cd websocketdemo目录。 3) node server.js 4) 双击client.html显示页面。 5)输入信息,点击send。

    java实现实时通信之webSocket使用案例

    在数据实效性要求更高的今天,实时通讯成为必然,webSocket为浏览器提供了解决方案,而现在基本所有浏览器都对其进行了支持,其...本案例针对webSocket的使用提供了完整案例,下载后便可以直接运行使用,为入门提供便利

    WebSocket 入门

    WebSocket 入门

    spring webSocket 开发案例

    本案例将详细介绍如何利用Spring框架来开发WebSocket服务,实现点对点的聊天功能。 首先,我们需要在项目中引入Spring Websocket的相关依赖。这通常包括Spring Framework的核心模块以及Spring Websocket模块。在...

    springwebsocket 中文注释案例

    《Spring WebSocket 中文注释案例详解》 在现代Web开发中,实时通信功能变得越来越重要,Spring框架提供了WebSocket支持,使得服务器与客户端可以进行双向通信,实现高效、低延迟的数据交换。本文将深入探讨一个...

    websocket项目案例_V3

    V3-websocket项目案例下载demo

    PHP实现WebSocket上课案例demo1-9

    在本案例中,我们可能会使用Ratchet来创建WebSocket服务器端,因为它提供了易于理解和使用的API。 1. **Ratchet库的使用**: - 安装:通过Composer添加`cboden/ratchet`到项目依赖。 - 创建服务器:定义一个类,...

    unity websocket 聊天室案例

    Unity Websocket 聊天室案例是一个典型的即时通讯(IM)应用,利用Unity游戏引擎结合WebSocket网络协议,实现跨平台的聊天功能,包括在WebGL平台上运行。WebSocket是一种在客户端和服务器之间建立长连接的协议,它...

    Graphql以及WebSocket入门资料和代码.zip

    Graphql以及WebSocket入门资料和代码

    WebSocket入门教程(三)- WebSocket实例:实时获取服务器内存使用情况

    WebSocket入门教程(三)-- WebSocket实例:实时获取服务器内存使用情况, 详解:http://blog.csdn.net/u010136741/article/details/51581298

    html5 支持的websocket小案例源代码

    运行这些WebSocket小案例时,你需要将项目部署到Tomcat 7服务器上。由于WebSocket在Tomcat 7中是默认支持的,但如果你的服务器环境中已经存在其他版本的WebSocket库,可能会出现冲突。因此,描述中提到的“如果你要...

    Websocket案例

    此案例是一个简单是websocket运用的案例。 页面并没有华丽的样式,只是简单的说明此案例怎么运用。 在此实现类中,每一行代码中都有解释,对于新手初学websocket来说,真的是简单易懂。并且容易在这里扩展。 cpu监控...

Global site tag (gtag.js) - Google Analytics