报错信息:
java.lang.IllegalStateException: The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.checkState(WsRemoteEndpointImplBase.java:1015)
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.textStart(WsRemoteEndpointImplBase.java:978)
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendString(WsRemoteEndpointImplBase.java:161)
at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:37)
解决方案:
1>错误的方式:
@OnMessage
public String onMessage(String message, Session session) {
...
return message;
}
2>正确的方式:
@OnMessage
public void onMessage(String message, Session session) {
...
}
*还需注意使用websocket时候session.getBasicRemote()与session.getAsyncRemote()的区别