| | |
| | | |
| | | @Component |
| | | @Slf4j(topic = "websocket") |
| | | @ServerEndpoint("/websocket") |
| | | @ServerEndpoint("/websocket/{userId}") |
| | | public class ChatServerEndpoint { |
| | | |
| | | @OnOpen |
| | | public void openSession( Session session) { |
| | | String userId = SecurityUtils.getUserId(); |
| | | public void openSession( @PathParam("userId")String userId, Session session) { |
| | | |
| | | ONLINE_USER_SESSIONS.put(userId, session); |
| | | String message = "用户[" + userId + "] 成功连接!"; |
| | | log.info("用户登录:"+message); |
| | |
| | | } |
| | | |
| | | @OnMessage |
| | | public void onMessage( String message) { |
| | | public void onMessage(@PathParam("userId")String userId, String message) { |
| | | log.info("收到消息:"+message); |
| | | String userId = SecurityUtils.getUserId(); |
| | | Session session = ONLINE_USER_SESSIONS.get(userId); |
| | | sendMessage(session,message); |
| | | // sendMessageAll("用户[" + userid + "] : " + message); |
| | | } |
| | | |
| | | @OnClose |
| | | public void onClose( Session session) { |
| | | String userId = SecurityUtils.getUserId(); |
| | | public void onClose( @PathParam("userId")String userId,Session session) { |
| | | //当前的Session 移除 |
| | | ONLINE_USER_SESSIONS.remove(userId); |
| | | //并且通知其他人当前用户已经离开聊天室了 |
| | | String message="用户[" + userId + "] 断开连接!"; |
| | | sendMessage(session,message); |
| | | log.info("发送消息:"+message); |
| | | // //并且通知其他人当前用户已经离开聊天室了 |
| | | // String message="用户[" + userId + "] 断开连接!"; |
| | | // sendMessage(session,message); |
| | | // log.info("发送消息:"+message); |
| | | try { |
| | | session.close(); |
| | | } catch (IOException e) { |