public virtual void StartServer(SocketConfig socketConfig) { SocketConfig = socketConfig; foreach (var module in _moduleManager.ForeachInitializedModule()) { var serverModule = module.Value; if (serverModule.ServiceId != ID) { continue; } RpcMethodIds.AddRange(serverModule.RpcMethodIds); RpcPacketTypes.AddRange(serverModule.RpcPacketTypes); } _serverSocket.Start(socketConfig); }
public void ClearModule(IModule module) { if (module == null) { throw new ArgumentNullException(nameof(module)); } _connectedAction -= module.Connected; _disconnectedAction -= module.Disconnected; _acceptAction -= module.Accepted; foreach (var item in module.RpcMethodIds) { RpcMethodIds.Remove(item); } foreach (var item in module.RpcPacketTypes) { RpcPacketTypes.Remove(item); } }
public virtual void Connect(SocketConfig socketConfig) { SocketConfig = socketConfig; foreach (var module in _moduleManager.ForeachInitializedModule()) { var serverModule = module.Value; if (serverModule.ServiceId != ID) { continue; } RpcMethodIds.AddRange(serverModule.RpcMethodIds); RpcPacketTypes.AddRange(serverModule.RpcPacketTypes); } _keys = Ssfi.Security.CreateAesKey(); using (var writeStream = PoolAllocator <IWriteStream> .GetObject()) { writeStream.ShiftRight(_keys.PublicKey); _serverSocket.Connect(socketConfig, writeStream); } }