我正在编写一个简单的websocket应用程序。在此,我将消息发送功能分开。更明确onOpen, onClose, onMessage, onError
等方法放在用@ServerEndpoint
注释的类中,即
@ServerEndpoint(value = "/test")
public class TestEndpoint {
@OnOpen
public void onOpen(Session session) throws IOException {
}
@OnMessage
public String echo(String message) {
}
@OnError
public void onError(Throwable t) {
}
@OnClose
public void onClose(Session session) {
}
}
我想负责将消息对象发送到班级MessageSender
,即
public class MessageSender {
/**
*
* This method will take care of sending messages object
*/
public void sendMessage(){
}
}
所以MessageSender类应该使用websocket Encoder
和Decoder
类,但据我所知,我们只能在Encoders
注释中使用Decoders
和@ServerEndpoint
喜欢,
@ServerEndpoint(value =" / test",encoder = Encoder.class,decoders = Decoder.class)
有没有办法使用编码器和解码器进行简单的课程?
答案 0 :(得分:0)
Encoder
和Decoder
将应用于已创建的Session
对象,因此,如果您将其传递给MessageSender
类,然后执行session.getBasicRemote().sendObject(…)
之类的操作},它将使用@ServerEndpoint
注释中定义的同一组编码器。