微信群控开发SDK使用教程--手机客户端返回聊天消息的原始内容给服务端

case RequestTalkContentTaskResultNotice: {// 返回聊天消息的原始内容

log.debug("socket:msgtype=RequestTalkContentTaskResultNotice");

requestTalkContentTaskResultNoticeHandler.handleMsg(ctx, msgVo);

break;

}

package com.jubotech.framework.netty.handler.socket;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import com.google.protobuf.util.JsonFormat;

import com.jubotech.business.web.domain.AccountInfo;

import com.jubotech.business.web.domain.WeChatAccountInfo;

import com.jubotech.business.web.service.AccountService;

import com.jubotech.business.web.service.WeChatAccountService;

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.RequestTalkContentTaskResultNotice.RequestTalkContentTaskResultNoticeMessage;

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 RequestTalkContentTaskResultNoticeHandler{

private final Logger log = LoggerFactory.getLogger(getClass());

@Autowired

private WeChatAccountService weChatAccountService;

@Autowired

private AccountService accountService;

/**

* 返回聊天消息的原始内容

* @author wechatno:tangjinjinwx

* @param ctx

* @param vo

*/

public void handleMsg(ChannelHandlerContext ctx, TransportMessage vo) {

try {

RequestTalkContentTaskResultNoticeMessage req = vo.getContent().unpack(RequestTalkContentTaskResultNoticeMessage.class);

log.info(JsonFormat.printer().print(req));

WeChatAccountInfo account = weChatAccountService.findWeChatAccountInfoByWeChatId(req.getWeChatId());

if (null != account && null != account.getAccountid() && 1 != account.getIslogined()) {

AccountInfo accInfo = accountService.findAccountInfoByid(account.getAccountid());

if (null != accInfo) {

// 转发给pc端

ChannelHandlerContext chx = NettyConnectionUtil.getClientChannelHandlerContextByUserId(accInfo.getAccount());

if (null != chx) {

MessageUtil.sendJsonMsg(chx, EnumMsgType.RequestTalkContentTaskResultNotice,NettyConnectionUtil.getNettyId(chx), null, req);

}

}

// 告诉客户端消息已收到

MessageUtil.sendMsg(ctx, EnumMsgType.MsgReceivedAck, vo.getAccessToken(), vo.getId(), null);

} else {

// 对方不在线

MessageUtil.sendErrMsg(ctx, EnumErrorCode.TargetNotOnline, Constant.ERROR_MSG_NOTONLINE);

}

} catch (Exception e) {

e.printStackTrace();

MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam, Constant.ERROR_MSG_DECODFAIL);

}

}

}

项目地址:https://github.com/tangjinjinwx/Public.WeChat.CRM.SDK

接口参考:http://www.yunlauncher.com/Blog/articles/119.html

微信群控的服务器怎么用,微信群控开发SDK使用教程--手机客户端返回聊天消息的原始内容给服务端...相关推荐

  1. 微信二次开发SDK使用教程--手机检测到有人点赞/取消点赞通知服务端

    微信二次开发SDK使用教程--手机检测到有人点赞/取消点赞通知服务端 case CircleLikeNotice : {//手机检测到有人点赞/取消点赞通知 log.debug("socke ...

  2. 微信云控开发SDK使用教程--手机机端回传检测清粉好友数通知服务端

    微信云控开发SDK使用教程--手机机端回传检测清粉好友数通知服务端 case PostFriendDetectCountNotice : {//手机机端回传检测清粉好友数 log.debug(&quo ...

  3. 微信开发SDK使用教程--手机微信好友发来聊天消息通知服务端

    微信开发SDK使用教程--手机微信好友发来聊天消息通知服务端 case FriendTalkNotice: {// 微信好友发来聊天消息 log.debug("socket:msgtype= ...

  4. 微信开发SDK使用教程--手机微信个人号新增好友通知服务端

    微信开发SDK使用教程--手机微信个人号新增好友通知服务端 case FriendAddNotice: {// 微信个人号新增好友通知 log.debug("socket:msgtype=F ...

  5. 微信机器人开发SDK使用教程--养号任务停止

    微信机器人开发SDK使用教程--养号任务停止 case "PostStopWeChatMaintenanceTask": {// 养号任务停止 log.debug("we ...

  6. 微信机器人开发SDK使用教程--删除朋友圈

    微信机器人开发SDK使用教程--删除朋友圈 case "DeleteSNSNewsTask": {// 删除朋友圈 log.debug("websocket:msgtyp ...

  7. 微信机器人开发SDK使用教程--群发消息任务

    微信机器人开发SDK使用教程--群发消息任务 case "WeChatGroupSendTask": {// 群发消息任务 log.debug("websocket:ms ...

  8. 聚播微信多开客服系统二次开发SDK服务端接口

    聚播微信多开客服系统二次开发SDK服务端接口 case HeartBeatReq: {// 客户端发送的心跳包heartBeatReqHandler.handleMsg(ctx, msgVo);bre ...

  9. 微信机器人开发SDK使用教程--执行养号动作命令

    微信机器人开发SDK使用教程--执行养号动作命令 case "WeChatMaintenanceTask": {// 执行养号动作命令 log.debug("websoc ...

最新文章

  1. Firefox 的一个HTTP分析器扩展
  2. 哪位有方法把 dd/mm/yyyy的字符串 格式化成yyyy-mm-dd
  3. C++primer :const限定符
  4. C++:22 再议const的作用(上)
  5. Spring Boot 热部署 devtools模块
  6. 「旁门右道」CURL持久连接技巧
  7. 实验一 线性表的顺序存储与实现_程序员:数据结构与算法,线性表介绍
  8. 21天Jmeter打卡day16参数传递token传递,接口关联
  9. java字符串计数从零还是从一,java – 计数和所有字符相同的最大字符串的起始索引...
  10. html5快手视频播放源码,快手视频解析源码
  11. 高德地图----经纬度转地理位置,地理位置获取经纬度
  12. Springboot学习-MD5盐值密码加密 DigestUtils 和 BCryptPasswordEncoder
  13. 政府普及政务工作邮箱的难题
  14. Word数学公式编辑器怎么用
  15. 淘宝四大经典骗局及防骗技巧
  16. mysql partition 语法,MySQL与瀚高数据库的范围分区的语法及实例(APP)
  17. 网络库libevent、libev、libuv、libhv对比
  18. 下载谷歌play应用_在Google Play控制台上为应用设置发布并发布到内部曲目
  19. 学会给你的笔记本电池换“芯”
  20. (石头、剪刀、布)shell脚本,随机对比,case的应用

热门文章

  1. 致刚就业迷茫的你和寄语大学毕业生--技术读者
  2. Oracle OR条件的优化与改写
  3. 成吉思汗陵举行戊戌年成吉思汗嗣火祭祀
  4. matlab面元法计算naca翼型的升力系数(关于攻角的曲线)
  5. HC-SR505人体红外报警系统
  6. 低频理疗按摩仪8种常用基本波形
  7. python表情包多样化图形化聊天室_Python还有这功能:自动生成表情包,从此斗图无敌手!...
  8. 利用数据集在水晶报表中显示图像的 .NET 程序教程
  9. 用C++编写一个简易数学计算器
  10. 非常规方法彻底删除System Volume Information.exe