🚧 pass-through raw data, refactoring

This commit is contained in:
2023-10-07 19:30:52 +03:00
parent 8788cb0fcf
commit e1a3ea45e2
29 changed files with 434 additions and 219 deletions
@@ -14,7 +14,9 @@
* limitations under the License.
*/
using System.Net;
using ENet;
using Ragon.Protocol;
using Ragon.Server.IO;
namespace Ragon.Server.ENet;
@@ -23,11 +25,13 @@ public sealed class ENetReliableChannel: INetworkChannel
{
private Peer _peer;
private byte _channelId;
private byte[] _data;
public ENetReliableChannel(Peer peer, int channelId)
public ENetReliableChannel(Peer peer, NetworkChannel channel)
{
_peer = peer;
_channelId = (byte) channelId;
_data = new byte[1500];
_channelId = (byte) channel;
}
public void Send(byte[] data)
@@ -37,4 +41,14 @@ public sealed class ENetReliableChannel: INetworkChannel
_peer.Send(_channelId, ref newPacket);
}
public void Send(RagonBuffer buffer)
{
buffer.ToArray(_data);
var newPacket = new Packet();
newPacket.Create(_data, buffer.Length, PacketFlags.Reliable);
_peer.Send(_channelId, ref newPacket);
}
}