| | |
| | | import javax.websocket.OnMessage; |
| | | import javax.websocket.OnOpen; |
| | | import javax.websocket.Session; |
| | | import javax.websocket.server.PathParam; |
| | | import javax.websocket.server.ServerEndpoint; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | * @author ruoyi |
| | | */ |
| | | @Component |
| | | @ServerEndpoint("/websocket/message") |
| | | @ServerEndpoint("/websocket/message/{userId}") |
| | | public class WebSocketServer |
| | | { |
| | | /** |
| | |
| | | |
| | | private static Semaphore socketSemaphore = new Semaphore(socketMaxOnlineCount); |
| | | |
| | | /**接收userId*/ |
| | | private String userId=""; |
| | | |
| | | /** |
| | | * 连接建立成功调用的方法 |
| | | */ |
| | | @OnOpen |
| | | public void onOpen(Session session) throws Exception |
| | | public void onOpen(Session session, @PathParam("userId") String userId) throws Exception |
| | | { |
| | | boolean semaphoreFlag = false; |
| | | // 尝试获取信号量 |
| | |
| | | else |
| | | { |
| | | // 添加用户 |
| | | WebSocketUsers.put(session.getId(), session); |
| | | // WebSocketUsers.put(session.getId(), session); |
| | | WebSocketUsers.put(userId, session); |
| | | LOGGER.info("\n 建立连接 - {}", session); |
| | | LOGGER.info("\n 当前人数 - {}", WebSocketUsers.getUsers().size()); |
| | | WebSocketUsers.sendMessageToUserByText(session, "连接成功"); |
| | |
| | | public void onMessage(String message, Session session) |
| | | { |
| | | String msg = message.replace("你", "我").replace("吗", ""); |
| | | WebSocketUsers.sendMessageToUserByText(session, msg); |
| | | // WebSocketUsers.sendMessageToUserByText(session, msg); |
| | | } |
| | | } |