- case "CircleCommentReplyTask": {// 朋友圈评论回复任务
- log.debug("websocket:msgtype=CircleCommentReplyTask.....");
- circleCommentReplyTaskWebsocketHandler.handleMsg(ctx, vo,contentJsonStr);
- break;
- }
- package com.jubotech.framework.netty.handler.websocket;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Service;
- import com.google.protobuf.util.JsonFormat;
- import com.jubotech.framework.netty.common.Constant;
- import com.jubotech.framework.netty.utils.MessageUtil;
- import com.jubotech.framework.netty.utils.NettyConnectionUtil;
- import Jubo.JuLiao.IM.Wx.Proto.CircleCommentReplyTask.CircleCommentReplyTaskMessage;
- import Jubo.JuLiao.IM.Wx.Proto.TransportMessageOuterClass.EnumErrorCode;
- import Jubo.JuLiao.IM.Wx.Proto.TransportMessageOuterClass.EnumMsgType;
- import Jubo.JuLiao.IM.Wx.Proto.TransportMessageOuterClass.TransportMessage;
- import io.netty.channel.ChannelHandlerContext;
- @Service
- public class CircleCommentReplyTaskWebsocketHandler{
- private final Logger log = LoggerFactory.getLogger(getClass());
- /**
- * 朋友圈评论回复任务 ---pc 端经过服务端转发给手机端
- * @author wechatno:tangjinjinwx
- * @param ctx
- * @param vo
- */
- public void handleMsg(ChannelHandlerContext ctx,TransportMessage vo, String contentJsonStr) {
- try {
- log.info(contentJsonStr);
- CircleCommentReplyTaskMessage.Builder bd = CircleCommentReplyTaskMessage.newBuilder();
- JsonFormat.parser().merge(contentJsonStr, bd);
- CircleCommentReplyTaskMessage req = bd.build();
- //CircleCommentReplyTaskMessage req = vo.getContent().unpack(CircleCommentReplyTaskMessage.class);
- // 将消息转发送给手机客户端
- ChannelHandlerContext cx= NettyConnectionUtil.getClientChannelHandlerContextByUserId(req.getWeChatId());
- if(null != cx){
- MessageUtil.sendMsg(cx, EnumMsgType.CircleCommentReplyTask, NettyConnectionUtil.getNettyId(ctx), null, req);
- // 告诉发送方 消息已经收到
- MessageUtil.sendJsonMsg(ctx, EnumMsgType.MsgReceivedAck, vo.getAccessToken(), vo.getId(), null);
- }else{
- // 对方不在线
- MessageUtil.sendJsonErrMsg(ctx, EnumErrorCode.TargetNotOnline, Constant.ERROR_MSG_NOTONLINE);
- }
- } catch (Exception e) {
- e.printStackTrace();
- MessageUtil.sendJsonErrMsg(ctx, EnumErrorCode.InvalidParam, Constant.ERROR_MSG_DECODFAIL);
- }
- }
- }
项目地址: https://github.com/wuliaokankan/WeChat.CRM.SDK
接口参考: http://www.yunlauncher.com/Blog/articles/119.html
来源: http://www.bubuko.com/infodetail-3011046.html