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) { 
 | 
  
 | 
    } 
 | 
  
 | 
} 
 |