public void ApplyService(Networkf.NetworkService service) // listener thread { service.parseMessage = NetworkfMessage.ParseMessage; service.OnMessageReceived += OnMessageReceived; service.OnServiceTeardown += OnServiceTeardown; _service = service; }
public NSInitializer(Networkf.NetworkService service, int retryCount = 10, int retryDelay = 1000) { _service = service; service.parseMessage = ParseInitMessage; service.OnMessageReceived += OnRawMessageReceived; _retryCount = retryCount; _retryDelay = retryDelay; }
public void ApplyService(Networkf.NetworkService service) { if (_service != null) { return; } service.parseMessage = NetworkfMessage.ParseMessage; service.OnMessageReceived += OnMessageReceived; service.OnServiceTeardown += OnServiceTeardown; _service = service; }
private void OnServiceTeardown() // multi-threads { var offlineMsg = new ClientMessages.ClientOfflineMessage(); var service = _service; _service = null; lock (_receivedMsgCache) { _receivedMsgCache.Enqueue(offlineMsg); } service.parseMessage = null; service.OnMessageReceived -= OnMessageReceived; service.OnServiceTeardown -= OnServiceTeardown; }
private void OnServiceTeardown() { var service = _service; _service = null; service.parseMessage = null; service.OnMessageReceived -= OnMessageReceived; service.OnServiceTeardown -= OnServiceTeardown; var eventArgs = new NetworkEventCaughtEventArgs() { message = "Connection is closed." }; OnEventCaught(eventArgs); }
static void OnConnectionEstablished(NetworkService service) { var initializer = new NSInitializer(service); byte[] code = initializer.ServerRequireClientVerify(); if (code != null) { if (code.SequenceEqual(dmVerificationCode)) { if (dmConnection.HasAppliedService()) { initializer.ServerApplyConnection(null); } else { initializer.ServerApplyConnection(dmConnection); } } else if (code.SequenceEqual(player1VerificationCode)) { if (player1Connection.HasAppliedService()) { initializer.ServerApplyConnection(null); } else { initializer.ServerApplyConnection(player1Connection); } } else if (code.SequenceEqual(player2VerificationCode)) { if (player2Connection.HasAppliedService()) { initializer.ServerApplyConnection(null); } else { initializer.ServerApplyConnection(player2Connection); } } else { initializer.ServerApplyConnection(null); } } }