Skip to content

Commit

Permalink
1.15.16 优化
Browse files Browse the repository at this point in the history
针对VarList,VarMap中数据支持和超级套接字发送数据支持
  • Loading branch information
suxf committed Mar 12, 2022
1 parent 7bc4313 commit 815d618
Show file tree
Hide file tree
Showing 421 changed files with 3,781 additions and 1,785 deletions.
2 changes: 1 addition & 1 deletion ES/ES.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<Authors>枫</Authors>
<Description>让开发变得更加简单。</Description>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<Version>1.15.12</Version>
<Version>1.15.16</Version>
<Company>Fyenet Inc.</Company>
<Copyright>Fyenet Inc.</Copyright>
<PackageId>EasySharpFrame</PackageId>
Expand Down
81 changes: 81 additions & 0 deletions ES/Network/HyperSocket/HyperSocket.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using ES.Linq;
using ES.Network.Sockets;
using ES.Variant;
using System;
using System.Linq;
using System.Text;
Expand Down Expand Up @@ -117,6 +118,86 @@ public void SendUdp(string dataStr)
SendUdp(Encoding.UTF8.GetBytes(dataStr));
}

/// <summary>
/// 通过TCP发送数据
/// </summary>
/// <param name="list"></param>
public void SendTcp(VarList list)
{
SendTcp(list.GetBytes());
}

/// <summary>
/// 通过UDP发送数据[KCP]
/// </summary>
/// <param name="list"></param>
public void SendUdp(VarList list)
{
SendUdp(list.GetBytes());
}

/// <summary>
/// 通过TCP发送数据
/// </summary>
/// <param name="map"></param>
public void SendTcp(VarMap map)
{
SendTcp(map.GetBytes());
}

/// <summary>
/// 通过UDP发送数据[KCP]
/// </summary>
/// <param name="map"></param>
public void SendUdp(VarMap map)
{
SendUdp(map.GetBytes());
}

/// <summary>
/// 发送数据
/// </summary>
/// <param name="data">数据</param>
/// <param name="isTcpMode">默认tcp模式,否则udp模式</param>
public void Send(byte[] data, bool isTcpMode = true)
{
if (isTcpMode) SendTcp(data);
else SendUdp(data);
}

/// <summary>
/// 发送数据
/// </summary>
/// <param name="dataStr">数据</param>
/// <param name="isTcpMode">默认tcp模式,否则udp模式</param>
public void Send(string dataStr, bool isTcpMode = true)
{
if (isTcpMode) SendTcp(dataStr);
else SendUdp(dataStr);
}

/// <summary>
/// 发送数据
/// </summary>
/// <param name="list">数据</param>
/// <param name="isTcpMode">默认tcp模式,否则udp模式</param>
public void Send(VarList list, bool isTcpMode = true)
{
if (isTcpMode) SendTcp(list);
else SendUdp(list);
}

/// <summary>
/// 发送数据
/// </summary>
/// <param name="map">数据</param>
/// <param name="isTcpMode">默认tcp模式,否则udp模式</param>
public void Send(VarMap map, bool isTcpMode = true)
{
if (isTcpMode) SendTcp(map);
else SendUdp(map);
}

/// <summary>
/// 验证服务器数据
/// </summary>
Expand Down
8 changes: 4 additions & 4 deletions ES/Network/HyperSocket/HyperSocketClientModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public void OnReceivedCompleted(SocketMsg msg)
if (msg.data != null && msg.data.Compare(BaseHyperSocket.HeartPongBytes))
{
Interlocked.Exchange(ref heartCheckTimeOut, DateTime.UtcNow.Ticks);
if (!hasFirstRecvPong) { hasFirstRecvPong = true; listener!.OnOpen(hyperSocket); }
if (!hasFirstRecvPong) { hasFirstRecvPong = true; listener.OnOpen(hyperSocket); }
}
else if (hyperSocket.config.UseSSL && !hyperSocket.isSecurityConnected)
{
Expand All @@ -71,8 +71,8 @@ public void OnReceivedCompleted(SocketMsg msg)
}
else
{
if (hyperSocket.config.UseSSL && (hyperSocket.config.SSLMode == 0 || hyperSocket.config.SSLMode == 1)) listener!.OnTcpReceive(hyperSocket.ssl!.AESDecrypt(msg.data!)!, hyperSocket);
else listener!.OnTcpReceive(msg.data!, hyperSocket);
if (hyperSocket.config.UseSSL && (hyperSocket.config.SSLMode == 0 || hyperSocket.config.SSLMode == 1)) listener.OnTcpReceive(hyperSocket.ssl!.AESDecrypt(msg.data!)!, hyperSocket);
else listener.OnTcpReceive(msg.data!, hyperSocket);
}
}
else hyperSocket.InitializeUdpClient(msg.data);
Expand Down Expand Up @@ -103,7 +103,7 @@ public void OnReceive(byte[] data)
if (hyperSocket.IsValid)
{
if (hyperSocket.config.UseSSL && (hyperSocket.config.SSLMode == 0 || hyperSocket.config.SSLMode == 2)) listener!.OnUdpReceive(hyperSocket.ssl!.AESDecrypt(data)!, hyperSocket);
else listener!.OnUdpReceive(data, hyperSocket);
else listener.OnUdpReceive(data, hyperSocket);
}
else hyperSocket.VerifyServerData(data);
}
Expand Down
10 changes: 5 additions & 5 deletions ES/Network/HyperSocket/HyperSocketServerModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public void OnReceivedCompleted(RemoteSocketMsg msg)
{
remote.IsAlive = true;
remote.SendPong();
listener!.OnOpen(remote);
listener.OnOpen(remote);
return;
}
else if (hyperSocket.config.UseSSL && !remote.isSecurityConnected)
Expand All @@ -83,8 +83,8 @@ public void OnReceivedCompleted(RemoteSocketMsg msg)
}
else
{
if (hyperSocket.config.UseSSL && (hyperSocket.config.SSLMode == 0 || hyperSocket.config.SSLMode == 1)) listener!.OnTcpReceive(remote.ssl!.AESDecrypt(msg.data)!, remote);
else listener!.OnTcpReceive(msg.data, remote);
if (hyperSocket.config.UseSSL && (hyperSocket.config.SSLMode == 0 || hyperSocket.config.SSLMode == 1)) listener.OnTcpReceive(remote.ssl!.AESDecrypt(msg.data)!, remote);
else listener.OnTcpReceive(msg.data, remote);
return;
}
}
Expand Down Expand Up @@ -129,7 +129,7 @@ internal void KcpDataBackHandle(RemoteHyperSocket remote, byte[] data)
data = remote.ssl!.AESDecrypt(data)!;

if (data.Compare(BaseHyperSocket.HeartPingBytes)) remote.SendPong();
else listener!.OnUdpReceive(data, remote);
else listener.OnUdpReceive(data, remote);
}
else
{
Expand All @@ -147,7 +147,7 @@ internal void KcpDataBackHandle(RemoteHyperSocket remote, byte[] data)

public void SocketException(Exception exception)
{
listener!.SocketError(exception);
listener.SocketError(exception);
}

internal void CloseSocket()
Expand Down
111 changes: 96 additions & 15 deletions ES/Network/HyperSocket/RemoteHyperSocket.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using ES.Network.Sockets.Server;
using ES.Variant;
using System;
using System.Text;

Expand Down Expand Up @@ -67,21 +68,6 @@ internal RemoteHyperSocket(ushort sessionId, HyperSocketServer hyperSocket, Hype
kcpHelper = new KcpHelper(sessionId, (int)config.UdpReceiveSize, config.KcpWinSize, config.kcpMode, this);
}

/// <summary>
/// 发送数据 TCP
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public bool SendTcp(byte[] data)
{
if (IsAlive && isValid && data != null)
{
if (hyperSocketRef!.TryGetTarget(out var hyperSocket) && hyperSocket.config.UseSSL && (hyperSocket.config.SSLMode == 0 || hyperSocket.config.SSLMode == 1)) return tcpConn!.Send(SessionId, ssl!.AESEncrypt(data));
else return tcpConn!.Send(SessionId, data);
}
else return false;
}

/// <summary>
/// 发送数据 TCP
/// </summary>
Expand Down Expand Up @@ -110,6 +96,21 @@ internal void SendKcp(byte[] data)
kcpHelper.Send(data);
}

/// <summary>
/// 发送数据 TCP
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public bool SendTcp(byte[] data)
{
if (IsAlive && isValid && data != null)
{
if (hyperSocketRef!.TryGetTarget(out var hyperSocket) && hyperSocket.config.UseSSL && (hyperSocket.config.SSLMode == 0 || hyperSocket.config.SSLMode == 1)) return tcpConn!.Send(SessionId, ssl!.AESEncrypt(data));
else return tcpConn!.Send(SessionId, data);
}
else return false;
}

/// <summary>
/// 发送数据 UDP
/// </summary>
Expand Down Expand Up @@ -141,6 +142,86 @@ public void SendUdp(string dataStr)
SendUdp(Encoding.UTF8.GetBytes(dataStr));
}

/// <summary>
/// 通过TCP发送数据
/// </summary>
/// <param name="list"></param>
public void SendTcp(VarList list)
{
SendTcp(list.GetBytes());
}

/// <summary>
/// 通过UDP发送数据[KCP]
/// </summary>
/// <param name="list"></param>
public void SendUdp(VarList list)
{
SendUdp(list.GetBytes());
}

/// <summary>
/// 通过TCP发送数据
/// </summary>
/// <param name="map"></param>
public void SendTcp(VarMap map)
{
SendTcp(map.GetBytes());
}

/// <summary>
/// 通过UDP发送数据[KCP]
/// </summary>
/// <param name="map"></param>
public void SendUdp(VarMap map)
{
SendUdp(map.GetBytes());
}

/// <summary>
/// 发送数据
/// </summary>
/// <param name="data">数据</param>
/// <param name="isTcpMode">默认tcp模式,否则udp模式</param>
public void Send(byte[] data, bool isTcpMode = true)
{
if (isTcpMode) SendTcp(data);
else SendUdp(data);
}

/// <summary>
/// 发送数据
/// </summary>
/// <param name="dataStr">数据</param>
/// <param name="isTcpMode">默认tcp模式,否则udp模式</param>
public void Send(string dataStr, bool isTcpMode = true)
{
if (isTcpMode) SendTcp(dataStr);
else SendUdp(dataStr);
}

/// <summary>
/// 发送数据
/// </summary>
/// <param name="list">数据</param>
/// <param name="isTcpMode">默认tcp模式,否则udp模式</param>
public void Send(VarList list, bool isTcpMode = true)
{
if (isTcpMode) SendTcp(list);
else SendUdp(list);
}

/// <summary>
/// 发送数据
/// </summary>
/// <param name="map">数据</param>
/// <param name="isTcpMode">默认tcp模式,否则udp模式</param>
public void Send(VarMap map, bool isTcpMode = true)
{
if (isTcpMode) SendTcp(map);
else SendUdp(map);
}

/// <summary>
/// 内部接受函数 KCP
/// </summary>
Expand Down
Loading

0 comments on commit 815d618

Please sign in to comment.