Пример #1
0
        protected override void OnHandshaked()
        {
            Log.Information("Connected to service.");

            _connectedPrev = true;
            ConnectedEvent?.Invoke(this, EventArgs.Empty);
        }
Пример #2
0
 void HandleConnectedEvent()
 {
     if (ConnectedEvent != null)
     {
         ConnectedEvent.Invoke();
     }
 }
Пример #3
0
 void HandleConnectedEvent(IConnection conn)
 {
     if (ConnectedEvent != null)
     {
         ConnectedEvent.Invoke(conn);
     }
 }
Пример #4
0
        /// <summary>
        /// Connects the session to the given multicast group (IP address).
        /// </summary>
        /// <param name="group">The multicast group to join.</param>
        /// <param name="port">The port to connect to.</param>
        /// <param name="ttl">The multicast time to live (TTL).</param>
        public async Task ConnectMulticastAsync(IPAddress group, int port, int ttl)
        {
            // TODO: disconnect first?

            Logger.Info($"Session {Id} connecting to multicast group {group}:{port}...");

            try {
                _socketConnecting = true;
                _socket           = await NetUtil.ConnectMulticastAsync(group, port, ttl).ConfigureAwait(false);

                if (null == _socket)
                {
                    await ErrorAsync($"Could not connect to multicast group {group}:{port}!").ConfigureAwait(false);

                    return;
                }
            } finally {
                _socketConnecting = false;
            }

            if (IsConnected)
            {
                ConnectedEvent?.Invoke(this, new ConnectedEventArgs());
            }
            else
            {
                // TODO: error?
            }
        }
Пример #5
0
        void HandleConnectEvent()
        {
            m_State = ConnectState.Connected;

            m_Connection.IsConnected = true;

            ConnectedEvent?.Invoke();
        }
Пример #6
0
        void HandleConnectEvent()
        {
            m_State = ConnectState.Connected;

            m_Connection.IsConnected = true;

            if (ConnectedEvent != null)
            {
                ConnectedEvent.Invoke();
            }
        }
Пример #7
0
        void HandleConnect(int connectionId, NetworkError error)
        {
            var connection = new Connection(m_SocketId, connectionId, true, error);

            // add connection at correct index
            while (m_Connections.Count <= connectionId)
            {
                m_Connections.Add(null);
            }
            m_Connections[connectionId] = connection;

            ConnectedEvent?.Invoke(connection);
        }
Пример #8
0
 protected void OnConnected()
 {
     retryCount   = 0;
     isConnecting = false;
     if (connection != null)
     {
         connection.MessageRespondEvent -= OnMessageRespond;
         connection.MessageRespondEvent += OnMessageRespond;
     }
     ConnectedEvent?.Invoke();
     InvokeStatusEvent(NetworkStatus.Connected);
     prevHeartbeatDateTime = DateTime.Now;
     StopAllCoroutines();
     connectCor   = StartCoroutine(ConnectionDetectAsync());
     heartbeatCor = StartCoroutine(HeartbeatDetectAsync());
 }
Пример #9
0
        public async Task ConnectAsync()
        {
            try
            {
                await _connection.StartAsync();

                NotifyNewLogMessageEvent($"Connected to hub: {Endpoint}");
                IsConnected = true;
                ConnectedEvent?.Invoke();
            }
            catch (Exception ex)
            {
                NotifyNewLogMessageEvent($"Something went wrong while connecting to {Endpoint}: {ex.Message}");
                IsConnected = false;
                Task.Delay(30000).Wait();
                await ConnectAsync();
            }
        }
Пример #10
0
 /// <summary>
 /// 运行aap服务器
 /// </summary>
 /// <param name="app"></param>
 public void StartApp(ConnectedEvent app)
 {
     AppServer.Start();
     App = new Thread(() => {
         while (true)
         {
             try
             {
                 var v = AppServer.GetContext();
                 app?.Invoke(v);
             }
             catch (Exception ex)
             {
                 ThreadMsgEvent?.BeginInvoke(ex.StackTrace, null, null);
             }
         }
     });
     App.Start();
 }
Пример #11
0
        public static void AcceptCallback(IAsyncResult ar)
        {
            Debug.WriteLine("AcceptCallback");

            // Get the socket that handles the client request.
            StateObject state   = (StateObject)ar.AsyncState;
            Socket      handler = state.listenSocket;

            Socket newSocket = handler.EndAccept(ar);

            // Create the state object.
            state.workSocket = newSocket;

            // Start reading data
            StartReadPacket(state);

            // Notify a new person connected
            var e = new ConnectedEventArgs();

            ConnectedEvent.Invoke(null, e);
        }
Пример #12
0
 /// <summary>
 /// 运行图像上传服务器
 /// </summary>
 /// <param name="img"></param>
 public void StartImg(ConnectedEvent img)
 {
     ImgServer.Start();
     Img = new Thread(() => {
         while (true)
         {
             Sem2.WaitOne();
             try
             {
                 var v = ImgServer.GetContext();
                 img?.Invoke(v);
             }
             catch (Exception ex)
             {
                 ThreadMsgEvent?.BeginInvoke(ex.StackTrace, null, null);
             }
             Sem2.Release();
         }
     });
     Img.Start();
 }
Пример #13
0
        /// <summary>
        /// Connects the session to the given host:port using the given socket properties.
        /// </summary>
        /// <param name="host">The host to connect to (hostname or IP address).</param>
        /// <param name="port">The port to connect to.</param>
        /// <param name="socketType">Type of the socket.</param>
        /// <param name="protocolType">Type of the socket protocol.</param>
        /// <param name="useIPv6">if set to <c>true</c> use IPv6, otherwise use IPv4.</param>
        public async Task ConnectAsync(string host, int port, SocketType socketType, ProtocolType protocolType, bool useIPv6)
        {
            // TODO: disconnect first?

            Logger.Info($"Session {Id} connecting to {host}:{port}...");

            try {
                _socketConnecting = true;

                Socket socket = await NetUtil.ConnectAsync(host, port, socketType, protocolType, useIPv6).ConfigureAwait(false);

                if (null == socket)
                {
                    await ErrorAsync($"Could not connect to {host}:{port}!").ConfigureAwait(false);

                    return;
                }

                if (SocketType.Stream == socketType)
                {
                    _sslSocket = new SSLSocketWrapper(socket);
                }
                else
                {
                    _socket = socket;
                }
            } finally {
                _socketConnecting = false;
            }

            if (IsConnected)
            {
                ConnectedEvent?.Invoke(this, new ConnectedEventArgs());
            }
            else
            {
                // TODO: error?
            }
        }
Пример #14
0
 public void StartConnectorLoop()
 {
     IsConnected = true;
     ConnectedEvent?.Invoke(this, new EventArgs());
 }
Пример #15
0
 /// <summary>
 /// When tcp client is connected to the server
 /// </summary>
 protected virtual void OnConnectedEvent()
 {
     ConnectedEvent?.Invoke(this, EventArgs.Empty);
 }
Пример #16
0
 private void OnConnected(FeedbackEventArgs e)
 {
     ConnectedEvent?.Invoke(this, e);
 }
Пример #17
0
        /////////////////
        // events from debugger connection

        void Connection_OnConnectedEvent()
        {
            ConnectedEvent?.Invoke();
        }
Пример #18
0
 void HandleConnectedEvent(IConnection conn)
 {
     ConnectedEvent?.Invoke(conn);
 }
Пример #19
0
 protected void onConnected()
 {
     ConnectedEvent?.Invoke(this, EventArgs.Empty);
 }
Пример #20
0
 public void OnConnected()
 {
     ConnectedEvent?.Invoke();
 }
Пример #21
0
 void HandleConnectedEvent()
 {
     ConnectedEvent?.Invoke();
 }
Пример #22
0
 private void OnConnectedEvent(EventArgs e)
 {
     ConnectedEvent?.Invoke(this, e);
 }
        private async Task Reader()
        {
            using (HttpClient client = new HttpClient {
                Timeout = Timeout.InfiniteTimeSpan
            })
            {
                for (int i = 1; AutoReconnect && (RetryLimit == -1 || i <= RetryLimit); i++)
                {
                    try
                    {
                        using (var response = await client.GetAsync($"https://stream.lobi.co/2/group/{GroupID}?token={AccessToken}", HttpCompletionOption.ResponseHeadersRead))
                            using (var reader = new System.IO.StreamReader(await response.Content.ReadAsStreamAsync()))
                            {
                                i         = 0;    //カウンタ初期化
                                Connected = true; //Connected!!
                                ConnectedEvent?.Invoke(GroupID);
                                while (!reader.EndOfStream)
                                {
                                    token = new CancellationTokenSource();       //トークン初期化
                                    var jobj = await _Read(reader, token.Token); //Jsonデータ読み取り

                                    var ev = jobj["event"]?.ToString();
                                    if (ev == "chat")
                                    {
                                        ChatEvent?.Invoke(GroupID, JsonConvert.DeserializeObject <Chat>(jobj["chat"].ToString()));
                                    }
                                    else if (ev == "chat_deleted")
                                    {
                                        ChatDeletedEvent?.Invoke(GroupID, jobj["id"].ToString());
                                    }
                                    else if (ev == "part")
                                    {
                                        PartEvent?.Invoke(GroupID, JsonConvert.DeserializeObject <UserMinimal>(jobj["user"].ToString()));
                                    }
                                    else if (ev == "archive")
                                    {
                                        ArchiveEvent?.Invoke(GroupID);
                                    }
                                }
                            }
                        token     = null;
                        Connected = false;
                        DisconnectedEvent?.Invoke(GroupID);
                    }
                    catch (OperationCanceledException)
                    {
                        token     = null;
                        Connected = false;
                        DisconnectedEvent?.Invoke(GroupID);
                        return;
                    }
                    catch (Exception ex)
                    {
                        if (Connected)
                        {
                            token     = null;
                            Connected = false;
                            DisconnectedEvent?.Invoke(GroupID);//必要かな??
                        }
                        else
                        {
                            token     = null;
                            Connected = false;//一応ね
                        }
                        FailConnectEvent?.Invoke(GroupID, ex);
                    }
                    await Task.Delay(RetryCoolTimeMilliseconds);//クールタイム
                }
            }
        }
Пример #24
0
        public override void OnConnectedToMaster()
        {
            base.OnConnectedToMaster();

            ConnectedEvent?.Invoke();
        }
Пример #25
0
 public override void OnClientConnect(NetworkConnection conn)
 {
     base.OnClientConnect(conn);
     Debug.Log("connected");
     OnConnected.Invoke();
 }
Пример #26
0
 protected virtual void OnConnected(RemoteServer server)
 {
     ConnectedEvent?.Invoke(server, EventArgs.Empty);
 }
Пример #27
0
 protected void OnWatcherCallback()
 {
     ConnectedEvent?.Invoke(this);
 }
Пример #28
0
 protected void OnConnectedEvent(EndPoint localEndPoint, EndPoint remoteEndPoint)
 {
     ConnectedEvent?.Invoke(this, new ConnectionEventArgs(localEndPoint, remoteEndPoint));
 }
Пример #29
0
        protected void RaiseConnectedEvent()
        {
            EventArgs args = new EventArgs();

            ConnectedEvent?.Invoke(this, args);
        }
Пример #30
0
 private void OnConnected()
 {
     ClientState = ClientState.Connected;
     ConnectedEvent?.Invoke();
 }