有很多文件不可能导致问题,但我决定将它们包括在内,以便您可以尝试这样做。我还添加了几个System.out.println(arg0);
用于调试
在Google Chrome上:在使用ctr + r或ctr + shit + r进行刷新时,可以正常工作。但是如果按下刷新按钮,它会加载所有内容,但WebSocket请求会冻结一段时间。完成冻结后,服务器会收到几个(2?)请求,但第一行是null
,因此服务器停止处理请求并等待新请求。然后服务器获取正确的WebSocket请求,一切都按预期继续。但是如果在冻结时刷新,服务器将连接到上一个WebSocket并正确发送index.html
和style.css
,但无法发送script.js
并抛出java.net.SocketException
和java.lang.NegativeArraySizeException
因为它试图读取负数(-124?)字节的数据。
关于FireFox:与谷歌浏览器相同,但它是随机发生的,而不是按下刷新按钮时。
如果打开WebSocket,我也无法连接到服务器,这可能是因为WebSocket读取了ServerSocket应该读取的请求,但我不确定这一点,我不知道如何解决这个问题。