关于websocket问题,

qq_31326649 2016-10-12 10:44:14
/**
*
*/
package cn.osworks.aos.om.sorcket;

import java.io.IOException;
import java.util.Hashtable;
import java.util.Map;
import java.util.Set;
import java.util.logging.Logger;
import javax.websocket.*;
import javax.websocket.server.*;
//注意此访问地址格式如:"ws://"+ window.location.host+"/${pageContext.request.contextPath}/game"是ws开头的,而不是以http:开头的.
@ServerEndpoint(value = "/game")
public class WebSocket{

private Logger logger = Logger.getLogger(this.getClass().getName());

static Map<String,Session> sessionMap = new Hashtable<String,Session>();

@OnOpen
public void onOpen(Session session) {
sessionMap.put(session.getId(), session);
}

@OnMessage
public void onMessage(String unscrambledWord, Session session) {
broadcastAll("message",unscrambledWord);
}
/**
* 广播给所有人
* @param message
*/
public static void broadcastAll(String type,String message){
Set<Map.Entry<String,Session>> set = sessionMap.entrySet();
for(Map.Entry<String,Session> i: set){
try {
i.getValue().getBasicRemote().sendText("{type:'"+type+"',text:'"+message+"'}");
} catch (Exception e) {
e.printStackTrace();
}
}
}

@OnClose
public void onClose(Session session, CloseReason closeReason) {
sessionMap.remove(session.getId());
logger.info(String.format("Session %s closed because of %s", session.getId(), closeReason));
}

@OnError
public void error(Session session, java.lang.Throwable throwable){
sessionMap.remove(session.getId());
System.err.println("session "+session.getId()+" error:"+throwable);
}
}














<%@ page contentType="text/html; charset=utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
var socket =null;
$(function(){
function parseObj(strData){//转换对象
return (new Function( "return " + strData ))();
};
//创建socket对象
socket = new WebSocket("ws://localhost:8888/om/game");
//连接创建后调用
socket.onopen = function() {
$("#showMsg").append("连接成功...<br/>");
};
//接收到服务器消息后调用
socket.onmessage = function(message) {
var data=parseObj(message.data);
if(data.type=="message"){
$("#showMsg").append("<span style='display:block'>"+data.text+"</span>");
}else if(data.type=="background"){
$("#showMsg").append("<span style='display:block'>系统改变背景地址,背景地址是:"+data.text+"</span>");
$("body").css("background","url("+data.text+")");
}
};
//关闭连接的时候调用
socket.onclose = function(){
alert("close");
};
//出错时调用
socket.onerror = function() {
alert("error");
};
$("#sendButton").click(function() {
socket.send($("#msg").val());
});

});
</script>
</head>
<body>
<div id="showMsg" style="border: 1px solid; width: 500px; height: 400px; overflow: auto;"></div>
<div>
<input type="text" id="msg" />
<input type="button" id="sendButton" value="发送" />
<input type="button" value="改变背景" id="abcde" />
</div>
</body>
</html>
















上面是代码。一直提示error 连接不上
...全文
206 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony4geek 2016-10-12
  • 打赏
  • 举报
回复
问题 不详细,一直err ,看不出哪里有问题。
qq_31326649 2016-10-12
  • 打赏
  • 举报
回复
我用的spring +springMvc+mybatis 但是我的spring版本是3.2的 要4.0才有websocket 所以就想用TOMCAT里面的websocket,这个会有什么冲突吗?已经找了好多案例 都不行,浏览器页换很多个了,

50,535

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧