old_flsystem/类库/Chat.Framework/WXSdk/HOOK/WechatPack.cs

126 lines
4.1 KiB
C#
Raw Permalink Normal View History

2022-09-20 03:10:29 +00:00
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
{
/// <summary>
/// 易转发包
/// </summary>
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
}
}