protected PacketHandlingTests() { var clientMock = new Mock <Client>(); Moonlight = new MoonlightAPI(new AppConfig { Database = "../../database.db" }); SkillFactory = Moonlight.Services.GetService <ISkillFactory>(); EntityFactory = Moonlight.Services.GetService <IEntityFactory>(); MapFactory = Moonlight.Services.GetService <IMapFactory>(); IPacketHandlerManager _packetHandlerManager = Moonlight.Services.GetService <IPacketHandlerManager>(); clientMock.Setup(x => x.SendPacket(It.IsAny <string>())).Callback <string>(x => _packetHandlerManager.Handle(clientMock.Object, x)); clientMock.Setup(x => x.ReceivePacket(It.IsAny <string>())).Callback <string>(x => _packetHandlerManager.Handle(clientMock.Object, x)); Client = clientMock.Object; Client.Character = Character = new Character(new SerilogLogger(), 999, "Moonlight", Client); Map map = MapFactory.CreateMap(1); map.AddEntity(Client.Character); }
public WebSocketConnector(IPacketFormat packetFormat, IPacketHandlerManager packetHandlerManager) : base(packetFormat, packetHandlerManager) { mSocket = null; mNetStream = new NetStream(INetConnector.MAX_SOCKET_BUFFER_SIZE * 2); tempReadPacketLength = 0; tempReadPacketType = 0; tempReadPacketData = null; mSendThread = new AsyncThread(SendLogic); mSendThread.Start(); }
public INetConnector(IPacketFormat packetFormat, IPacketHandlerManager packetHandlerManager) { mUid = -1; mRemoteHost = null; OnConnected = null; OnRecieved = null; OnDisconnected = null; OnError = null; mPacketFormat = packetFormat; mPacketHandlerManager = packetHandlerManager; }
private bool mDisconnectEvent; // 断开消息,必须要在主线程中处理 public INetConnector(IPacketFormat packetFormat, IPacketHandlerManager packetHandlerManager) { mUid = -1; mRemoteHost = null; OnConnected = null; OnRecieved = null; OnDisconnected = null; OnError = null; mPacketFormat = packetFormat; mPacketHandlerManager = packetHandlerManager; mDisconnectEvent = false; }
public UDPConnector(IPacketFormat packetFormat, IPacketHandlerManager packetHandlerManager) : base(packetFormat, packetHandlerManager) { mSocket = null; mRemoteEndPoint = null; mNetStream = new NetStream(INetConnector.MAX_SOCKET_BUFFER_SIZE * 2); tempReadPacketLength = 0; tempReadPacketType = 0; tempReadPacketData = null; mReadCompleteCallback = new AsyncCallback(ReadComplete); mSendCompleteCallback = new AsyncCallback(SendComplete); mSendThread = new AsyncThread(SendLogic); mSendThread.Start(); }
public void InitServer(ushort port, string blowfishKey, IGame game, NetworkHandler <ICoreRequest> netReq, NetworkHandler <ICoreResponse> netResp) { _game = game; _server = new Host(); _server.Create(new Address(_serverHost, port), 32, 32, 0, 0); var key = Convert.FromBase64String(blowfishKey); if (key.Length <= 0) { throw new InvalidKeyException("Invalid blowfish key supplied"); } Blowfish = new BlowFish(key); PacketHandlerManager = new PacketHandlerManager(Blowfish, _server, game, netReq, netResp); }
public void InitServer(string host, ushort port, Dictionary <ulong, string> blowfishKeys, IGame game, NetworkHandler <ICoreRequest> netReq, NetworkHandler <ICoreResponse> netResp) { _game = game; _server = new Host(); Address addr = new Address(); addr.Port = port; // addr.SetHost("192.168.0.100"); // Laptop Ethernet IP addr.SetHost(host); _server.Create(addr, 32, 32, 0, 0); Dictionary <ulong, BlowFish> blowfishes = new Dictionary <ulong, BlowFish>(); foreach (var rawKey in blowfishKeys) { var key = Convert.FromBase64String(rawKey.Value); if (key.Length <= 0) { throw new InvalidKeyException($"Invalid blowfish key supplied ({key})"); } blowfishes.Add(rawKey.Key, new BlowFish(key)); } PacketHandlerManager = new PacketHandlerManager(blowfishes, _server, game, netReq, netResp); }
public PacketNotifier(IPacketHandlerManager packetHandlerManager, INavGrid navGrid) { _packetHandlerManager = packetHandlerManager; _navGrid = navGrid; }
public void RegisterConnector(int uid, ConnectionType type, IPacketFormat pf, IPacketHandlerManager phm, Callback <bool> connected, Callback <int, Byte[]> recieved, Callback disconnected, Callback error) { INetConnector ctor = null; switch (type) { case ConnectionType.TCP: ctor = new TCPConnector(pf, phm); break; case ConnectionType.UDP: ctor = new UDPConnector(pf, phm); break; case ConnectionType.WEBSOCKET: ctor = new WebSocketConnector(pf, phm); break; default: ctor = new TCPConnector(pf, phm); break; } ctor.OnConnected = connected; ctor.OnRecieved = recieved; ctor.OnDisconnected = disconnected; ctor.OnError = error; ctor.SetUid(uid); mConnectorMap.Add(uid, ctor); }
public ClientManager(IPacketHandlerManager packetHandlerManager) => PacketHandlerManager = packetHandlerManager;