java web websocke无法连接

错误显示:Firefox 无法建立到 ws://localhost/Test/socket 服务器的连接。

用的IDEA。tomcat9,jdk1.8。

浏览器前端界面显示没有问题。问题在下面这一句。

var socket = new WebSocket("ws://${pageContext.request.getServerName()}:${pageContext.request.getServerPort()}${pageContext.request.contextPath}/websocket");

后端,Service.java

@ServerEndpoint("/websocket")

public class Service {
        public void OnOpen(Session session){
            room.addElement(session);

            JSONObject obj = new JSONObject();
            obj.put("nickname","机器人");
            obj.put("date",df.format(new Date()));
            obj.put("isSelf", false);
            obj.put("content","你好");
            session.getAsyncRemote().sendText(obj.toString());
            LOGGER.info("Service start...");


        }
                ......
}

前端界面接收不到返回的数据。之前有一次火狐没有报错,但是也接受不到数据。

网上找的,希望能帮到你
1.打开firefox,输入 about:config,进入配置页

2.搜索websocket配置项

3.配置如下图所示

图片说明

4.修改配置后,需要重新启动Firefox

session.getAsyncRemote().sendText(obj.toString()); 这个代码的原因吧
建议你从以下去排查
1.后台发送数据逻辑
2.前台接收数据逻辑
3.tomcat和jdk版本是否对websocket有影响
4.浏览器版本

确定websocket启动了吗? onOpen方法没加 @onOpen 注解吧可能 ; 另外前端可以通过 js , if( 'webSocket' in window ) 来判断该浏览器是否支持
webSocket ;