我试图在https://blog.openshift.com/how-to-build-java-websocket-applications-using-the-jsr-356-api/之后使用Tyrus 1.8.3和javax.websocket API运行一个简单的websocket示例作为指南。
使用注释,我创建了一个简单的服务器端点和一个客户端端点,它触发了一个正确注释@ OnOpen的方法。但是,当我从客户端发送消息时,不会在服务器端触发带有@OnMessage的方法。
有趣的是,在onOpen上创建的会话ID在客户端和服务器之间是不同的。我不明白为什么,并认为这可能与问题有关?如果会话ID不相同 - 只有一个会话......
我还编写了一个简单的Javascript客户端来连接到同一个服务器端点,这也没有触发@OnMessage方法,因此我怀疑服务器端存在问题。
我已将日志级别提升为FINE,因为在INFO级别没有报告任何内容。从日志看起来websocket升级成功并且连接打开OK。客户端和服务器上都抛出javax.naming.NoInitialContextException
,但我不确定这是否相关......
我已将所有代码上传到github:https://github.com/stephenhartley/websocket-demo
可以在logs文件夹中查看日志文件。
有人可以给我一些指导如何追查这个问题的原因吗?
非常感谢!