Ejemplo n.º 1
0
        private void onConnectedClient(object sender, ClientConnectEventArgs e)
        {
            this.Sessions.Add(e.ID, e.Session);
            this.NewSessions.Add(e.ID, e.Session);
            VebSocketClient vc = e.Session.Context.WebSocket.ToVebSocketClient();

            vc.SubscribeToMainloop(this.HDEHost);
            this.Clients.Add(e.ID, vc);
            this.NewClients.Add(e.ID, vc);
        }
Ejemplo n.º 2
0
        public void Evaluate(int SpreadMax)
        {
            if (FInput.IsConnected)
            {
                FUrl.SliceCount         = FInput.SliceCount;
                FOrigin.SliceCount      = FInput.SliceCount;
                FProtocol.SliceCount    = FInput.SliceCount;
                FExtensions.SliceCount  = FInput.SliceCount;
                FCompression.SliceCount = FInput.SliceCount;
                FState.SliceCount       = FInput.SliceCount;
                FCloseReason.SliceCount = FInput.SliceCount;
                FIsSecure.SliceCount    = FInput.SliceCount;
                FCredentials.SliceCount = FInput.SliceCount;
                FCookies.SliceCount     = FInput.SliceCount;

                for (int i = 0; i < FInput.SliceCount; i++)
                {
                    if (FInput[i] is VebSocketClient)
                    {
                        VebSocketClient vs = FInput[i] as VebSocketClient;
                        FUrl[i]                = vs.Client.Url.ToString();
                        FOrigin[i]             = vs.Client.Origin;
                        FProtocol[i]           = vs.Client.Protocol;
                        FExtensions[i]         = vs.Client.Extensions;
                        FCompression[i]        = vs.Client.Compression.ToString();
                        FState[i]              = vs.Client.ReadyState.ToString();
                        FCloseReason[i]        = vs.CloseReason;
                        FIsSecure[i]           = vs.Client.IsSecure;
                        FCredentials[i]        = vs.Client.Credentials;
                        FCookies[i].SliceCount = 0;

                        foreach (Cookie c in vs.Client.Cookies)
                        {
                            FCookies[i].Add(c);
                        }
                    }
                }
            }
            else
            {
                FUrl.SliceCount         = 0;
                FOrigin.SliceCount      = 0;
                FProtocol.SliceCount    = 0;
                FExtensions.SliceCount  = 0;
                FCompression.SliceCount = 0;
                FState.SliceCount       = 0;
                FCloseReason.SliceCount = 0;
                FIsSecure.SliceCount    = 0;
                FCredentials.SliceCount = 0;
                FCookies.SliceCount     = 0;
            }
        }
Ejemplo n.º 3
0
        public void Evaluate(int SpreadMax)
        {
            if (FInput.IsConnected)
            {
                FTextMessage.SliceCount = FInput.SliceCount;
                FRawMessage.SliceCount  = FInput.SliceCount;
                FMessageType.SliceCount = FInput.SliceCount;
                FError.SliceCount       = FInput.SliceCount;

                for (int i = 0; i < FInput.SliceCount; i++)
                {
                    if (FInput[i] is VebSocketClient)
                    {
                        FTextMessage[i].SliceCount = 0;
                        FMessageType[i].SliceCount = 0;
                        FError[i].SliceCount       = 0;
                        VebSocketClient vs = FInput[i] as VebSocketClient;
                        FRawMessage[i].ResizeAndDispose(vs.ReceivedMessages.Count, () => new MemoryStream());
                        int ii = 0;
                        foreach (ClientMessage cm in vs.ReceivedMessages.Values)
                        {
                            FTextMessage[i].Add(cm.Text);
                            FMessageType[i].Add(cm.Type.ToString());
                            FRawMessage[i][ii].Position = 0;
                            FRawMessage[i][ii].SetLength(cm.Raw.Length);
                            FRawMessage[i][ii].Write(cm.Raw, 0, cm.Raw.Length);
                            ii++;
                        }
                        foreach (VebSocketError e in vs.Errors)
                        {
                            if (e.Exception != null)
                            {
                                FError[i].Add(e.Message + "\n" + e.Exception.Message);
                            }
                            else
                            {
                                FError[i].Add(e.Message);
                            }
                        }
                    }
                }
            }
            else
            {
                FTextMessage.SliceCount = 0;
                FRawMessage.SliceCount  = 0;
                FMessageType.SliceCount = 0;
                FError.SliceCount       = 0;
            }
        }
Ejemplo n.º 4
0
        public void Evaluate(int SpreadMax)
        {
            if (FInput.IsConnected)
            {
                FMessage.SliceCount     = FInput.SliceCount;
                FMessageType.SliceCount = FInput.SliceCount;
                FError.SliceCount       = FInput.SliceCount;

                for (int i = 0; i < FInput.SliceCount; i++)
                {
                    if (FInput[i] is VebSocketClient)
                    {
                        FMessage[i].SliceCount     = 0;
                        FMessageType[i].SliceCount = 0;
                        FError[i].SliceCount       = 0;
                        VebSocketClient vs = FInput[i] as VebSocketClient;

                        foreach (ClientMessage cm in vs.ReceivedMessages.Values)
                        {
                            FMessage[i].Add(cm);
                            FMessageType[i].Add(cm.Type.ToString());
                        }
                        foreach (VebSocketError e in vs.Errors)
                        {
                            if (e.Exception != null)
                            {
                                FError[i].Add(e.Message + "\n" + e.Exception.Message);
                            }
                            else
                            {
                                FError[i].Add(e.Message);
                            }
                        }
                    }
                }
            }
            else
            {
                FMessage.SliceCount     = 0;
                FMessageType.SliceCount = 0;
                FError.SliceCount       = 0;
            }
        }
Ejemplo n.º 5
0
        public void Evaluate(int SpreadMax)
        {
            if (FInput.IsConnected)
            {
                FSending.SliceCount = FInput.SliceCount;
                FSent.SliceCount    = FInput.SliceCount;
                FError.SliceCount   = FInput.SliceCount;

                for (int i = 0; i < FInput.SliceCount; i++)
                {
                    if (FInput[i] is VebSocketClient)
                    {
                        FSending[i].SliceCount = 0;
                        FSent[i].SliceCount    = 0;
                        FError[i].SliceCount   = 0;
                        VebSocketClient vs = FInput[i] as VebSocketClient;

                        for (int j = 0; j < FMessage.SliceCount; j++)
                        {
                            if (FSend[i][j])
                            {
                                ClientMessage cm = FMessage[i][j] as ClientMessage;
                                if (cm.Type == Opcode.Text)
                                {
                                    vs.Send(cm.Text);
                                }
                                else
                                {
                                    vs.Send(cm.Raw);
                                }
                            }
                        }

                        FSending[i].SliceCount = 0;
                        foreach (ClientMessage cm in vs.SendingMessages.Values)
                        {
                            FSending[i].Add(cm);
                        }
                        FSent[i].SliceCount = 0;
                        foreach (ClientMessage cm in vs.SentMessages.Values)
                        {
                            FSent[i].Add(cm);
                        }
                        FError[i].SliceCount = 0;
                        foreach (VebSocketError e in vs.Errors)
                        {
                            if (e.Exception != null)
                            {
                                FError[i].Add(e.Message + "\n" + e.Exception.Message);
                            }
                            else
                            {
                                FError[i].Add(e.Message);
                            }
                        }
                    }
                }
            }
            else
            {
                FSending.SliceCount = 0;
                FSent.SliceCount    = 0;
                FError.SliceCount   = 0;
            }
        }