我其实是在做噩梦。我的 webapp 使用 websockets 进行聊天,问题就来了:
使用 Glassfish 4.1u13 一切正常,直到我激活了访问日志监控。从那以后,每个 ws 请求都进行了 2 次,并且 Web 套接字无法进行握手。 https://java.net/jira/browse/GLASSFISH-21007
试图更新到玻璃鱼 4.1.1 -> 问题 PERSIST
尝试切换到 Payara 4.1.1.115(这是 glassfish 的修补版本),一切顺利。我现在可以在我的 Glassfish 实例中拥有 websocket 和访问日志记录。
几分钟后注意到,当我重新加载页面时,客户端应用程序和服务器之间的通信并不总是完成。检查网络 -> 正确握手,但无法交换数据。
然后在服务器端,我制作了 2 个系统:一个在请求 servlet 的过滤器中,一个在 websocket 端点中。每个请求都到达服务器并进行握手但有时@OnOpen 不会被调用,即使 wss 升级到 101。这怎么可能?尝试更新到 Tyrus 1.12(payara 使用 1.11)并将其降级到 1.8.1(这是运行 Glassfish 4.1u13 使用的版本),但没有任何反应。
我如何调试这种行为?