spring boot项目启动websocket,页面访问 报404

迷途小羔羊678 2017-12-25 03:27:04
各位好:
我在尝试在我现有h5+spring boot的项目内,增加使用websocket ,实现消息推送功能。根据网上找的一些资料,经行了配置,后台启动成功,页面访问时报404,请问我需要新增或修改什么东西呢?是不是要做一些ws请求的部署。我平时http请求的端口是9094,用ws请求,端口是否变化了以及怎么找这个对应的端口(现在http请求是可以访问的)。
浏览器错误为:CheckPanelCtrl.js:18 WebSocket connection to 'ws://localhost:9094/' failed: Error during WebSocket handshake: Unexpected response code: 404
(anonymous) @ CheckPanelCtrl.js:18
dispatch @ jquery.js:4670
r.handle @ jquery.js:4338
谢谢各位解答。

下面是主要代码:
@ServerEndpoint(value = "/websocket")
@Component
public class WSServer {
//静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。
private static int onlineCount = 0;

//concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。
private static CopyOnWriteArraySet<WSServer> webSocketSet = new CopyOnWriteArraySet<WSServer>();

//与某个客户端的连接会话,需要通过它来给客户端发送数据
private Session session;

/**
* 连接建立成功调用的方法*/
@OnOpen
public void onOpen(Session session) {
this.session = session;
webSocketSet.add(this); //加入set中
addOnlineCount(); //在线数加1
System.out.println("有新连接加入!当前在线人数为" + getOnlineCount());
try {
// sendMessage(CommonConstant.CURRENT_WANGING_NUMBER.toString());
sendMessage("123456");
} catch (IOException e) {
System.out.println("IO异常");
}
}

/**
* 连接关闭调用的方法
*/
@OnClose
public void onClose() {
webSocketSet.remove(this); //从set中删除
subOnlineCount(); //在线数减1
System.out.println("有一连接关闭!当前在线人数为" + getOnlineCount());
}

/**
* 收到客户端消息后调用的方法
*
* @param message 客户端发送过来的消息*/
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("来自客户端的消息:" + message);

//群发消息
for (WSServer item : webSocketSet) {
try {
item.sendMessage(message);
} catch (IOException e) {
e.printStackTrace();
}
}
}


		var socket;
if(typeof(WebSocket) == "undefined") {
alert("您的浏览器不支持WebSocket");
return;
}alert("您的浏览器支持WebSocket");

$("#btnConnection").click(function() {
//实现化WebSocket对象,指定要连接的服务器地址与端口
//"ws://127.0.0.1:8087/WebSocketServer/ws/张三"
// ws://localhost:8084/websocket 这行和下面的哪行同样是404
socket = new WebSocket("ws://localhost:9094");

//打开事件
socket.onopen = function() {
alert("Socket 已打开");
//socket.send("这是来自客户端的消息" + location.href + new Date());
};
//获得消息事件
socket.onmessage = function(msg) {
alert(msg.data);
};
//关闭事件
socket.onclose = function() {
alert("Socket已关闭");
};
//发生了错误事件
socket.onerror = function() {
alert("发生了错误");
}
});
...全文
3480 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
q370980250 2017-12-29
  • 打赏
  • 举报
回复
new websocket好像不能使用localhost,我用localhost,其他客户端接收不了,要用本机ip地址,我也才看的,
迷途小羔羊678 2017-12-25
  • 打赏
  • 举报
回复
如果端口改成8080,报failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

5,655

社区成员

发帖
与我相关
我的任务
社区描述
Web开发应用服务器相关讨论专区
社区管理员
  • 应用服务器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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