Java tyrus Websocket API的怪异行为
我正在开发一个websocket服务器和客户端,它将处理多条消息 我将JSON与解码器和编码器一起使用 因为每个端点只能有一个@OnMessage方法,所以我创建了一个名为message的标记接口。现在,我将@OnMessage方法作为参数,如void@onMessageMessageMessage消息、客户端和服务器中的会话 我正在使用Session.getAsyncRemote.sendObject从客户端的@OnConnect发送寄存器\发送对象。服务器成功读取此消息,并使用Session.getAsyncRemote.sendObject将Register_接收到的对象发送给客户端。 Register\u Send和Register\u Received都实现了消息接口。这两个对象都作为JSON对象进行编码和解码 但在客户端void@OnMessageMessage消息中,会话方法接收Register\u Received对象作为Register\u Send。因此,引发异常 我无法解决此问题,无论是我的代码中的错误还是Tyrus 1.7 API中的错误Java tyrus Websocket API的怪异行为,java,json,tyrus,Java,Json,Tyrus,我正在开发一个websocket服务器和客户端,它将处理多条消息 我将JSON与解码器和编码器一起使用 因为每个端点只能有一个@OnMessage方法,所以我创建了一个名为message的标记接口。现在,我将@OnMessage方法作为参数,如void@onMessageMessageMessage消息、客户端和服务器中的会话 我正在使用Session.getAsyncRemote.sendObject从客户端的@OnConnect发送寄存器\发送对象。服务器成功读取此消息,并使用Session
请为我推荐解决此问题的方案。您能分享您的代码吗?代码演示了您的问题?亲爱的@PavelBuckek,您可以在这里找到git存储库:请仔细阅读代码。将EclipseIDE与JDK7和Tyrus1.7API一起使用。等待您的响应。问题是,在willDecode方法实现中,您的解码器都返回true。因此,它们总是在声明顺序中使用,这有利于客户端的Register\u Send\u Decoder.class。您需要从@ClientEndpoint注解实现willDecode better或远程不需要的解码器。任何支持Register\u Send\u Decoder.class的原因?顺便说一句,问题已经解决。将在此处更新详细答案。我正在开发基于控制台的ClientEndpoint。现在我向服务器发送两种不同类型的消息。第一条消息通过OnOpen方法发送,第二条消息通过使用session.getAsyncRemote.sendObject发送,session.getAsyncRemote.sendObject位于客户端的主方法内。消息由服务器发送和响应。但客户端中的OnMessage方法并没有读取对第二条消息的响应。做了很多研究,但无法找到解决方案。给我建议一些解决办法。