关于Spring与WebSocket结合的简单例子
2015-11-14 16:30
537 查看
我的运行环境是:Tomcat 8.0 + Spring 4.0 + Myeclipse2014 + Firefox 42
JDK 1.8 不支持Spring 4.0 之前的版本
使用Google浏览器,Spring可能会抛出异常:The extension [x-webkit-deflate-frame] is not supported] with root cause
使用maven 管理jar包
JAVA代码
WebSocket处理类
public class MyHandler extends TextWebSocketHandler implements WebSocketHandler {
@Override
public void handleTextMessage(WebSocketSession session, TextMessage message) {
System.out.println("-------onMessage-------");
System.out.println(message.toString());
System.out.println(session.getRemoteAddress());
try {
session.sendMessage(new TextMessage("hello")); //发送消息给客户端
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
与客户端连接
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer{
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myHandler(), "/myHandler");
}
@Bean
public WebSocketHandler myHandler() {
return new MyHandler();
}
}
JSP代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
4000
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML >
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<script src="http://cdn.sockjs.org/sockjs-0.3.min.js"></script>
<script type="text/javascript">
var ws = null;
var result = 1;
ws = new WebSocket('ws://127.0.0.1:8082/day_0900_WebSocket/myHandler'); //此处的day_0900_WebSocket项目名,myHandler与WebSocketConfig 里 的/myHandler对应是建立连接的关键。
ws.onopen = function () { //通信连接成功后执行此代码。
result = 2;
};
ws.onmessage = function (event) { //接受服务端消息时执行此代码
alert(event.data);
};
ws.onclose = function (event) { // 连接关闭时执行此代码
};
function my(){
if(result == 2){
ws.send("dd"); //向客户端发送消息
}
}
</script>
</head>
<body>
<noscript><h2 style="color: #ff0000">Seems your browser doesn't support Javascript! Websockets
rely on Javascript being enabled. Please enable
Javascript and reload this page!</h2></noscript>
<button onclick="my()">hello</button>
</body>
</html>
到此,程序完成,当然不要忘记配置XML文件(正常配置),这个例子比较简单,只要环境搭建的没有问题,参照spring文档,应该没有什么问题
JDK 1.8 不支持Spring 4.0 之前的版本
使用Google浏览器,Spring可能会抛出异常:The extension [x-webkit-deflate-frame] is not supported] with root cause
使用maven 管理jar包
JAVA代码
WebSocket处理类
public class MyHandler extends TextWebSocketHandler implements WebSocketHandler {
@Override
public void handleTextMessage(WebSocketSession session, TextMessage message) {
System.out.println("-------onMessage-------");
System.out.println(message.toString());
System.out.println(session.getRemoteAddress());
try {
session.sendMessage(new TextMessage("hello")); //发送消息给客户端
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
与客户端连接
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer{
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myHandler(), "/myHandler");
}
@Bean
public WebSocketHandler myHandler() {
return new MyHandler();
}
}
JSP代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
4000
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML >
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<script src="http://cdn.sockjs.org/sockjs-0.3.min.js"></script>
<script type="text/javascript">
var ws = null;
var result = 1;
ws = new WebSocket('ws://127.0.0.1:8082/day_0900_WebSocket/myHandler'); //此处的day_0900_WebSocket项目名,myHandler与WebSocketConfig 里 的/myHandler对应是建立连接的关键。
ws.onopen = function () { //通信连接成功后执行此代码。
result = 2;
};
ws.onmessage = function (event) { //接受服务端消息时执行此代码
alert(event.data);
};
ws.onclose = function (event) { // 连接关闭时执行此代码
};
function my(){
if(result == 2){
ws.send("dd"); //向客户端发送消息
}
}
</script>
</head>
<body>
<noscript><h2 style="color: #ff0000">Seems your browser doesn't support Javascript! Websockets
rely on Javascript being enabled. Please enable
Javascript and reload this page!</h2></noscript>
<button onclick="my()">hello</button>
</body>
</html>
到此,程序完成,当然不要忘记配置XML文件(正常配置),这个例子比较简单,只要环境搭建的没有问题,参照spring文档,应该没有什么问题
相关文章推荐
- 2015-2016网页设计趋势分析 Web Design of Trends
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- 模拟Spring的简单实现
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- struts2 spring整合fieldError问题
- spring的jdbctemplate的crud的基类dao
- 读取spring配置文件的方法(spring读取资源文件)
- Spring Bean基本管理实例详解
- java实现简单美女拼图游戏
- java基本教程之线程休眠 java多线程教程
- JSP开发中在spring mvc项目中实现登录账号单浏览器登录
- spring boot实战之内嵌容器tomcat配置
- php使用websocket示例详解
- php+html5基于websocket实现聊天室的方法
- Javascript WebSocket使用实例介绍(简明入门教程)
- 基于Spring框架的Shiro配置方法
- Spring MVC中上传文件实例