在socket类中将注入方式改为以下代码:
@Component
@Slf4j
@ServerEndpoint("/websocket/{userId}")
public class WebSocketServer {
//一堆代码。。。
/**
* 解决socket无法注入bean的问题
*/
private static XxxxService xxxxService;
@Autowired
public void setChatService(XxxxService xxxxService) {
WebSocketServer.xxxxService= xxxxService;
}
//一堆代码。。。
}
多线程推送错误解决办法:
synchronized (session) {
session.getBasicRemote().sendText(message);
}
访问地址 ws://127.0.0.1:8080/testserver/websocket/userId2