| package com.matrix.component.websoket; | 
|   | 
| import com.matrix.core.tools.LogUtil; | 
| import net.sf.json.JSONObject; | 
| import org.springframework.web.socket.CloseStatus; | 
| import org.springframework.web.socket.TextMessage; | 
| import org.springframework.web.socket.WebSocketSession; | 
|   | 
| /** | 
|  * 观察者实现类 | 
|  * @author jyy | 
|  */ | 
| public class WebSoketMessageRabbitObserver implements WebSoketMessageObserver { | 
|   | 
|   | 
|     @Override | 
|     public void userConnection(WebSocketSession session) { | 
|   | 
|     } | 
|   | 
|     @Override | 
|     public void handleTextMessage(WebSocketSession session, TextMessage message) { | 
|   | 
|         WebSoketCommonMessage commonMessage = (WebSoketCommonMessage) JSONObject.toBean(JSONObject.fromObject(message.getPayload()), WebSoketCommonMessage.class); | 
|         if (WebSoketCommonMessage.MESSAGE_TYPE_P2P == commonMessage.getMessageType()) { | 
|   | 
|             commonMessage.setUserId(session.getAttributes().get("userId")+""); | 
|   | 
|             LogUtil.info("发送消息给指定用户"+commonMessage.getTargetUserId()); | 
|   | 
|             WebSocketPushHandler.sendMessageToUser(commonMessage.getTargetUserId(), new TextMessage(commonMessage.toString())); | 
|         }else if(WebSoketCommonMessage.MESSAGE_TYPE_GROUP == commonMessage.getMessageType()) { | 
|   | 
|             commonMessage.setUserId(session.getAttributes().get("userId")+""); | 
|   | 
|             LogUtil.info("发送广播消息"+commonMessage.getTargetUserId()); | 
|   | 
|             WebSocketPushHandler.sendMessagesToUsers(new TextMessage(commonMessage.toString())); | 
|         } | 
|   | 
|   | 
|     } | 
|   | 
|     @Override | 
|     public void afterConnectionClosed(WebSocketSession session, CloseStatus status) { | 
|   | 
|     } | 
|   | 
| } |