Example #1
0
        public override bool Execute(HTTPConnection sender)
        {
            if (sender.Request.Filename.StartsWith("/iip/"))
            {
                // find the service
                var path = sender.Request.Filename.Substring(5);// sender.Request.Query["path"];


                Warehouse.Get(path).Then((r) =>
                {
                    if (r is DistributedServer)
                    {
                        var httpServer = sender.Parent;
                        var iipServer  = r as DistributedServer;
                        var tcpSocket  = sender.Unassign();
                        if (tcpSocket == null)
                        {
                            return;
                        }

                        var wsSocket = new WSSocket(tcpSocket);
                        httpServer.RemoveConnection(sender);

                        //httpServer.Connections.Remove(sender);
                        var iipConnection = new DistributedConnection();
                        //                      iipConnection.OnReady += IipConnection_OnReady;
//                        iipConnection.Server = iipServer;
                        //                    iipConnection.Assign(wsSocket);

                        iipServer.AddConnection(iipConnection);
                        iipConnection.Assign(wsSocket);
                        wsSocket.Begin();
                    }
                });

                return(true);
            }

            return(false);
        }
Example #2
0
        public static void Main(string[] args)
        {
            WSSocket client = new WSSocket("ws://localhost:8181/EchoApplication", false);

            client.OnOpen += delegate() {
                Console.WriteLine("Connection Opened");
            };
            client.OnClose += delegate() {
                Console.WriteLine("Connection Closed");
            };
            client.OnMessage += delegate(string message) {
                Console.WriteLine("Received: " + message);
            };

            client.Open(false);

            Console.WriteLine("Press Esc to exit...");

            ConsoleKeyInfo key;
            string         msg = "";

            do
            {
                key = Console.ReadKey();
                if (key.Key == ConsoleKey.Escape)
                {
                    break;
                }
                else if (key.Key == ConsoleKey.Enter)
                {
                    client.Send(msg);
                    msg = "";
                }
                else
                {
                    msg += key.KeyChar;
                }
            }while (true);
        }