using Chat.Framework.PCRobotSDK; using Chat.Framework.WXSdk.Implement; using CsharpHttpHelper; using PCRobot.Pack; using SuperSocket.SocketBase; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Chat.Framework.WXSdk.HOOK { /// /// 易转发包 /// internal class WechatPack { WeixinBase client; public WechatPack(WeixinBase client) { this.client = client; } internal string SendServer(PCRobotCMD cmd, string message = "", WechatMsgType messageType = WechatMsgType.文本, string tousername = "") { if (robot != null) { string text = string.Empty; var msg = new ServerWechatMsg() { Cmd = cmd, RobotType = client.WeixinType == WeixinType.QYHook微信 ? RobotType.客户端企业微信 : RobotType.客户端微信, RobotUsername = client.WeixinHao, RobotUsernick = string.Empty, ToMessage = message, ToMessageType = messageType, ToUsername = tousername,//string.IsNullOrWhiteSpace(groupid) ? tousername : groupid, Key = ChatClient.SocketPassword }; //Console.WriteLine(groupid); var json = HttpHelper.ObjectToJson(msg); text = PackTool.CompressString(json); //var t = PackTool.DecompressString(text); var need_send = $"{cmd} {text}\r\n"; var falg = robot.TrySend(need_send); LogHelper.GetSingleObj().Debug("", $"往客户端发送消息.: {json},状态=>{falg}"); return msg.MsgId; } return string.Empty; } private ServerWechatMsg NextSendData; internal void SetNextData(ServerWechatMsg nextData) { this.NextSendData = nextData; } internal void SendNextData() { try { if (robot != null) { NextSendData.Key = ChatClient.SocketPassword; NextSendData.RobotType = client.WeixinType == WeixinType.QYHook微信 ? RobotType.客户端企业微信 : RobotType.客户端微信; NextSendData.RobotUsername = client.WeixinHao; NextSendData.RobotUsernick = string.Empty; var json = HttpHelper.ObjectToJson(NextSendData); var text = PackTool.CompressString(json); var need_send = $"{NextSendData.Cmd} {text}\r\n"; Thread.Sleep(70); var flag = robot.TrySend(need_send); LogHelper.GetSingleObj().Debug("", $"往客户端发送消息: {json} @@@ {text},状态=>{flag}"); //this.SendAll(this.NextSendData.cmd, false, this.NextSendData.data); } } catch (Exception) { } } #region SupperSocket 1.0 //private SupperSocketSession _robot; //public SupperSocketSession robot //{ // get // { // if (!string.IsNullOrWhiteSpace(client.WeixinHao)) // { // var robotData = ChatClient.PCRobotPool.GetSession(client.WeixinHao); // if (robotData != null) // _robot = robotData; // } // return _robot; // } //} #endregion #region SupperSocket 2.0 private AppSession _robot; public AppSession robot { get { if (!string.IsNullOrWhiteSpace(client.WeixinHao)) { var robotData = ChatClient.PCRobotPool.GetSession(client.WeixinHao); if (robotData != null) _robot = robotData; } return _robot; } } #endregion } }