java websocket java demoCloseStatus 1009 如何解决

java websocket 关闭浏览器报错求救-百谷歌2013年10月 总版技术专家分月排行榜第三
2014年3月 Java大版内专家分月排行榜第一2014年1月 Java大版内专家分月排行榜第一2013年12月 Java大版内专家分月排行榜第一2013年11月 Java大版内专家分月排行榜第一2013年10月 Java大版内专家分月排行榜第一
2013年10月 总版技术专家分月排行榜第三
2014年3月 Java大版内专家分月排行榜第一2014年1月 Java大版内专家分月排行榜第一2013年12月 Java大版内专家分月排行榜第一2013年11月 Java大版内专家分月排行榜第一2013年10月 Java大版内专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。关于原理我就不啰嗦了。自己在网上搜一下就知道了。
应广大网友要求,已开源一个例子更参考:http://git.oschina.net/weir/spring_websocket
1.注册服务:
package com.tw.webS
import org.springframework.context.annotation.B
import org.springframework.context.annotation.C
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerA
import org.springframework.web.socket.WebSocketH
import org.springframework.web.socket.config.annotation.EnableWebS
import org.springframework.web.socket.config.annotation.WebSocketC
import org.springframework.web.socket.config.annotation.WebSocketHandlerR
@Configuration
@EnableWebSocket
public class WebSocketConfig extends WebMvcConfigurerAdapter implements WebSocketConfigurer{
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(systemWebSocketHandler(), "/webSocketServer").addInterceptors(new MyHandshakeInterceptor());
System.out.println("registed!");
registry.addHandler(systemWebSocketHandler(), "/sockjs/webSocketServer").addInterceptors(new MyHandshakeInterceptor()).withSockJS();
public WebSocketHandler systemWebSocketHandler(){
return new SystemWebSocketHandler();
我们注册两种:ws 和http 实现websocket。
2.继承握手拦截器:
package com.tw.webS
import java.util.M
import javax.servlet.http.HttpS
import org.springframework.http.server.ServerHttpR
import org.springframework.http.server.ServerHttpR
import org.springframework.http.server.ServletServerHttpR
import org.
import org.springframework.web.socket.WebSocketH
import org.springframework.web.socket.server.support.HttpSessionHandshakeI
import com.tw.entity.sys.U
@Component
public class MyHandshakeInterceptor extends HttpSessionHandshakeInterceptor{
public boolean beforeHandshake(ServerHttpRequest request,
ServerHttpResponse response, WebSocketHandler handler,
Map map) throws Exception {
if (request instanceof ServletServerHttpRequest) {
ServletServerHttpRequest servletRequest = (ServletServerHttpRequest)
HttpSession session = servletRequest.getServletRequest().getSession(false);
if (session!=null) {
System.out.println("ok");
User u = (User) session.getAttribute("U");
map.put("username", u.getName());
public void afterHandshake(ServerHttpRequest request,
ServerHttpResponse response, WebSocketHandler wsHandler,
Exception ex) {
这里是拿到在线的用户。
3.实现服务端的消息接受和推送:
package com.tw.webS
import java.io.IOE
import java.util.ArrayL
import org.
import org.springframework.web.socket.CloseS
import org.springframework.web.socket.TextM
import org.springframework.web.socket.WebSocketH
import org.springframework.web.socket.WebSocketM
import org.springframework.web.socket.WebSocketS
@Component
public class SystemWebSocketHandler implements WebSocketHandler{
private static final ArrayL
users = new ArrayList();
public SystemWebSocketHandler(){
public void afterConnectionClosed(WebSocketSession session, CloseStatus status)
throws Exception {
users.remove(session);
public void afterConnectionEstablished(WebSocketSession session)
throws Exception {
System.out.println("Server:cennected OK!");
users.add(session);
public void handleMessage(WebSocketSession session, WebSocketMessage message)
throws Exception {
TextMessage tm = new TextMessage(message.getPayload()+"");
System.out.println(message.getPayload());
session.sendMessage(tm);
public void handleTransportError(WebSocketSession session, Throwable throwable)
throws Exception {
if (session.isOpen()) {
session.close();
users.remove(session);
public boolean supportsPartialMessages() {
* 给所有在线用户发送消息
* @param message
public void sendMessageToUsers(TextMessage message) {
for (WebSocketSession user : users) {
if (user.isOpen()) {
user.sendMessage(message);
} catch (IOException e) {
e.printStackTrace();
public void sendMessageToUser(String username,TextMessage message) {
for (WebSocketSession user : users) {
if (user.getAttributes().get("username").equals(username)) {
if (user.isOpen()) {
user.sendMessage(message);
} catch (IOException e) {
e.printStackTrace();
4.配置文件applicationContext.xml:
没有变动。
4.2 tw-servlet.xml:
这里就加了个:xmlns:websocket="http://www.springframework.org/schema/websocket"
http://www.springframework.org/schema/websocket http://www.springframework.org/schema/websocket/spring-websocket-4.1.xsd
4.3 web.xml 没有任何特殊的。
5.在需要显示消息的页面这样做:
&%@ page language="java" contentType="text/ charset=UTF-8" pageEncoding="UTF-8"%&Java API for WebSocket (JSR-356)请输入:发送
&%@ page language="java" pageEncoding="UTF-8"%&
6.在controller里面就可以这样调用了:
public SystemWebSocketHandler systemWebSocketHandler(){
return new SystemWebSocketHandler();
@RequestMapping("/auditing")
@ResponseBody
public String auditing(HttpServletRequest request){
//无关代码都省略了
systemWebSocketHandler().sendMessageToUser("admin", new TextMessage("你好"));
return "";
这些代码就可以放在自己需要的任何地方了。
基本就这样了,你想做web聊天室 或 &web的网页消息提示都可以。
发送邮箱验证
这是最好的时代,这是最坏的时代;
这是智慧的年代,这是愚蠢的年代;
这是信仰的时期,这是怀疑的时期;
这是光明的季节,这是黑暗的季节;
这是希望之春,这是绝望之冬;
我们拥有一切,我们一无所有;
我们正走向天堂,我们都在奔向与其相反的地方。
——狄更斯 《双城记》
学习交流。QQ群: QQ: 微信:weirweiwei更多频道内容在这里查看
爱奇艺用户将能永久保存播放记录
过滤短视频
暂无长视频(电视剧、纪录片、动漫、综艺、电影)播放记录,
使用您的微博帐号登录,即刻尊享微博用户专属服务。
使用您的QQ帐号登录,即刻尊享QQ用户专属服务。
使用您的人人帐号登录,即刻尊享人人用户专属服务。
按住视频可进行拖动
&正在加载...
请选择打赏金额:
收藏成功,可进入
查看所有收藏列表
当前浏览器仅支持手动复制代码
视频地址:
flash地址:
html代码:
通用代码:
通用代码可同时支持电脑和移动设备的分享播放
用爱奇艺APP或微信扫一扫,在手机上继续观看
当前播放时间:
一键下载至手机
限爱奇艺安卓6.0以上版本
使用微信扫一扫,扫描左侧二维码,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
设备搜寻中...
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
连接失败!
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
部安卓(Android)设备,请点击进行选择
请您在手机端下载爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
爱奇艺云推送
请您在手机端登录爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
180秒后更新
打开爱奇艺移动APP,点击“我的-扫一扫”,扫描左侧二维码进行登录
没有安装爱奇艺视频最新客户端?
30秒后自动关闭
websocket java实现">websocket java实现
播放量数据:快去看看谁在和你一起看视频吧~
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
安装爱奇艺视频客户端,
马上开始为您下载本片
5秒后自动消失
&li data-elem="tabtitle" data-seq="{{seq}}"& &a href="javascript:void(0);"& &span>{{start}}-{{end}}&/span& &/a& &/li&
&li data-downloadSelect-elem="item" data-downloadSelect-selected="false" data-downloadSelect-tvid="{{tvid}}"& &a href="javascript:void(0);"&{{pd}}&/a&
选择您要下载的《
色情低俗内容
血腥暴力内容
广告或欺诈内容
侵犯了我的权力
还可以输入
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制

我要回帖

更多关于 websocket java demo 的文章

 

随机推荐