1.完善黑名单用户邀请好友申请处理

2.完善代运营
This commit is contained in:
老道 2023-02-01 14:18:07 +08:00
parent 18588f82e1
commit 6def41745a
2 changed files with 78 additions and 14 deletions

View File

@ -168,7 +168,17 @@ namespace MessageSupervises
private void SDK_WXApplyFriendEvent(object sender, Chat.Framework.WXSdk.Events.WXApplyFriend e)
{
e.Cancel = _ForbidBlacklist(e.NewFriendWxid, e.NewFriendNick, $"申请添加好友", e.Client);
var isCancel = _ForbidBlacklist(e.NewFriendWxid, e.NewFriendNick, $"申请添加好友", e.Client);
if (isCancel == false)
{
//查看邀请用户是否黑名单
if (!string.IsNullOrWhiteSpace(e.OldFriendWxid))
{
isCancel = _ForbidBlacklist(e.OldFriendWxid, e.OldFriendNick, $"邀请好友,申请添加", e.Client);
}
}
e.Cancel = isCancel;
}
private void SDK_WXApplyGroupEvent(object sender, Chat.Framework.WXSdk.Events.WXApplyGroup e)

View File

@ -7,6 +7,7 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using WebSocket = WebSocketSharp.WebSocket;
using CsharpHttpHelper;
using WebSocketSharp;
namespace Api.Framework
{
@ -75,6 +76,8 @@ namespace Api.Framework
/// </summary>
public bool IsConnected => (_websocket != null && _websocket.IsAlive);
private string ClientId { get; set; } = Guid.NewGuid().ToString("N");
/// <summary>
/// 连接
/// </summary>
@ -87,19 +90,38 @@ namespace Api.Framework
_websocket?.Close();
}
_websocket = new WebSocket($"ws://{this._host}/api/push?id={DateTime.Now.Ticks}");
_websocket = new WebSocket($"ws://{this._host}/api/push?id={ClientId}");
_websocket.OnOpen += _websocket_OnOpen;
_websocket.OnError += _websocket_OnError;
_websocket.OnClose += _websocket_OnClose;
_websocket.OnMessage += _websocket_OnMessage;
_websocket.Connect();
if (_thread == null)
_pingId = Guid.NewGuid().ToString("N");
_thread = new Thread(Ping)
{
_thread = new Thread(Ping)
{
IsBackground = true
};
_thread.Start();
}
IsBackground = true
};
_thread.Start();
}
/// <summary>
/// 连接断开
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void _websocket_OnClose(object sender, CloseEventArgs e)
{
//断开自动重连
this.Connect();
}
/// <summary>
/// 出现连接错误
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void _websocket_OnError(object sender, ErrorEventArgs e)
{
//断开自动重连
this.Connect();
}
/// <summary>
@ -153,18 +175,50 @@ namespace Api.Framework
Console.WriteLine($"即时通讯API连接异常:{ex.Message}");
}
}
private int PingFailureCount { get; set; }
private string _pingId = Guid.NewGuid().ToString();
private void Ping()
{
while (true)
var id = Guid.NewGuid().ToString();
_pingId = id;
while (_pingId == id)
{
Thread.Sleep(1000 * 10);
try
{
//测试ping是否正常
if (this._websocket.Ping()) continue;
try
{
if (_websocket == null)
{
continue;
}
if (_websocket.ReadyState == WebSocketState.Open)
{
_websocket.Send("\u0001\u0002");
this.PingFailureCount = 0;
}
else
{
this.PingFailureCount = this.PingFailureCount + 1;
}
}
catch
{
// ignored
this.PingFailureCount = this.PingFailureCount + 1;
}
finally
{
if (this.PingFailureCount > 5)
{
Console.WriteLine("心跳异常连接断开");
_websocket?.Close();
}
}
//断开自动重连
this.Connect();
}
catch (Exception e)
{