使用tomcat8和websocket进行消息推送失败
首先上代码,
然后我在html页面调用
访问html的时候报错
private static int onlineCount = 0;
// concurrent包的线程安全Set,用来存放每个客户端对应的Websocket_firstServer对象。若要实现服务端与单一客户端通信的话,可以使用Map来存放,其中Key可以为用户标识
private static CopyOnWriteArraySet<Websocket_firstServer> webSocketSet = new CopyOnWriteArraySet<Websocket_firstServer>();
// 与某个客户端的连接会话,需要通过它来给客户端发送数据
private Session session;
*//**
* 连接建立成功调用的方法
*
* @param session 可选的参数。session为与某个客户端的连接会话,需要通过它来给客户端发送数据
*//*
@OnOpen
public void onOpen(Session session) {
this.session = session;
webSocketSet.add(this); // 加入set中
addOnlineCount(); // 在线数加1
System.out.println("有新连接加入!当前在线人数为" + getOnlineCount());
}
*//**
* 连接关闭调用的方法
*//*
@OnClose
public void onClose() {
webSocketSet.remove(this); // 从set中删除
subOnlineCount(); // 在线数减1
System.out.println("有一连接关闭!当前在线人数为" + getOnlineCount());
}
*//**
* 收到客户端消息后调用的方法
*
* @param message 客户端发送过来的消息 @param session 可选的参数
*//*
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("来自客户端的消息:" + message);
// 群发消息
for (Websocket_firstServer item : webSocketSet) {
try {
item.sendMessage(message);
} catch (IOException e) {
e.printStackTrace();
continue;
}
}
}
*//**
* 发生错误时调用
* @param session
* @param error
*//*
@OnError
public void onError(Session session, Throwable error) {
System.out.println("发生错误");
error.printStackTrace();
}
public void sendMessage(String message) throws IOException {
this.session.getBasicRemote().sendText(message);
// this.session.getAsyncRemote().sendText(message);
}
public static synchronized int getOnlineCount() {
return onlineCount;
}
public static synchronized void addOnlineCount() {
Websocket_firstServer.onlineCount++;
}
public static synchronized void subOnlineCount() {
Websocket_firstServer.onlineCount--;
}然后我在html页面调用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>html5+bootstrap</title>
</head>
<body>
<script type="text/javascript">
var socket=null;
//判断当前浏览器是否支持WebSocket
if('WebSocket' in window){
socket = new WebSocket("ws://localhost:8080/websocket/");
}else{
alert('Not support websocket')
}
// 打开Socket
socket.onopen = function(event) {
// 发送一个初始化消息
socket.send('I am the client and I\'m listening!');
// 监听消息
socket.onmessage = function(event) {
console.log('Client received a message',event);
};
// 监听Socket的关闭
socket.onclose = function(event) {
console.log('Client notified socket has closed',event);
};
// 关闭Socket....
//socket.close()
};
</script>
</body>
</html>访问html的时候报错
"NetworkError: 404 Not Found - http://localhost:8080/websocket/"
/websocket/
Firefox 无法建立到 ws://localhost:8080/websocket/ 服务器的连接。
socket = new WebSocket("ws://localhost:8080/websocket/");
...全文
相关推荐
WebSocket部署到服务器出现连接失败问题的分析与解决
主要给大家介绍了关于WebSocket部署到服务器出现连接失败问题的分析与解决方法,文中给出了详细的介绍供大家参考学习,文末也给出了demo下载地址,需要的朋友们可以下载学习,下面随着小编来一起学习学习吧。
tomcat7.0.42 下部署websocket需要替换的包
直接将该下载包解压到tomcat 7.0.42 lib 包下替换即可
websocket 解决链接失败问题
tomcat运行在 5.0+以上版本。发包大小超出范围找到项目中web.xml文件,加入如下配置重启服务即可。 org.apache.tomcat.websocket.textBufferSize 5242800
TOMCAT7.0+TOMCAT8.5
TOMCAT7.0+TOMCAT8.5版本,对应需要的JDKjar包哦,其他需要再联系
html5的websocket代码示例包括错误解决方案
html5的websocket代码示例包括错误解决方案


Web 开发
