public void OnServiceDisconnectHandler()
        {
            //OnPeerDisconnectedEventHandler();

            MessageBoxResult result = MessageBox.Show("Disconnected");

            if (result == MessageBoxResult.OK)
            {
                OnPeerDisconnectedEvent?.Invoke();
            }
        }
Beispiel #2
0
        /// <summary>
        /// Setup all services used by server
        /// </summary>
        /// <param name="server"></param>
        private void SetupService(WebSocketServer server)
        {
            // Master server service
            server.AddWebSocketService <WsService>($"/app/{ApplicationKey}", (serviceForPeer) =>
            {
                serviceForPeer.IgnoreExtensions = true;
                serviceForPeer.SetServerSocket(this);

                var peer = new WsServerPeer(serviceForPeer);

                serviceForPeer.OnOpenEvent += () =>
                {
                    Logs.Debug($"Connection for peer [{peer.Id}] is open");
                };

                serviceForPeer.OnMessageEvent += (data) =>
                {
                    peer.HandleDataReceived(data);
                };

                ExecuteOnUpdate(() =>
                {
                    //MstTimer.Instance.StartCoroutine(peer.SendDelayedMessages(initialSendMessageDelayTime));
                    OnPeerConnectedEvent?.Invoke(peer);
                });

                serviceForPeer.OnCloseEvent += reason =>
                {
                    OnPeerDisconnectedEvent?.Invoke(peer);
                    peer.NotifyDisconnectEvent();
                };

                serviceForPeer.OnErrorEvent += reason =>
                {
                    Logs.Error(reason);
                    peer.NotifyDisconnectEvent();
                };
            });

            // Echo test service
            server.AddWebSocketService <EchoService>("/echo");
        }
Beispiel #3
0
        private void OnPeerDisconnectedEventHandler(IPeer peer)
        {
            logger.Debug($"Client {peer.Id} disconnected from server. Total clients are: {connectedPeers.Count - 1}");

            // Remove listener to messages
            peer.OnMessageReceivedEvent -= OnMessageReceived;

            // Remove the peer
            connectedPeers.Remove(peer.Id);

            var extension = peer.GetExtension <SecurityInfoPeerExtension>();

            if (extension != null)
            {
                // Remove from guid lookup
                peersByGuidLookup.Remove(extension.UniqueGuid);
            }

            // Invoke the event
            OnPeerDisconnectedEvent?.Invoke(peer);
            OnPeerDisconnected(peer);
        }