예제 #1
0
        static void Main(string[] args)
        {
            //System.Threading.Thread.Sleep(3000);
            var c = new XSocketClient("ws://127.0.0.1:4502", "http://localhost", "generic");

            c.OnConnected += (sender, eventArgs) => Console.WriteLine("Connected");
            c.Controller("generic").OnOpen += (sender, connectArgs) => Console.WriteLine("Generic Open");

            c.Open();
            c.Controller("generic").Invoke("CallAllClients");
            c.Controller("generic").On("test", () => Console.WriteLine("Syntaxerror did it!!! "));
            Console.ReadLine();
        }
예제 #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hit enter to start connecting 4000 clients...");
            Console.ReadLine();

            var server = 0;

            for (var i = 0; i < 4000; i++, server++)
            {
                if (server > 3)
                {
                    server = 0;
                }

                var c = new XSocketClient("ws://127.0.0.1:" + servers[server], "http://localhost", "foo");
                c.Open();
                c.Controller("foo").On("m", () =>
                {
                    Interlocked.Increment(ref messagecounter);
                });
            }

            Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    Console.WriteLine(messagecounter);
                    Thread.Sleep(10000);
                }
            });

            Console.WriteLine("All clients connected. Hit enter to quit...");
            Console.ReadLine();
        }
예제 #3
0
        static void Main(string[] args)
        {
            var conn = new XSocketClient("ws://localhost:4502", "http://localhost", "IoT");

            conn.Controller("IoT").OnOpen += (sender, connectArgs) => Console.WriteLine("IoT Controller Connected");

            conn.Open();

            //Set client type
            conn.Controller("IoT").SetEnum("ClientType", "Native");

            //Listen for messages from the Netduino
            conn.Controller("IoT").On <ChatMessage>("chatmessage", message => Console.WriteLine(message.Text));

            Console.WriteLine("Listening for messages from the Netduino, hit enter to quit");
            Console.ReadLine();
        }
예제 #4
0
        static void Main(string[] args)
        {
            using (var container = XSockets.Plugin.Framework.Composable.GetExport <IXSocketServerContainer>())
            {
                //Start a server
                container.Start();


                Console.WriteLine("Hit enter to start a client that will show Serilog.Sinks.XSockets");
                Console.ReadLine();

                //Start a client and hook up only to the log controller...
                var client = new XSocketClient("ws://localhost:4502", "http://localhost", "log");

                client.Open();

                client.Controller("log").On <LogEventWrapper>("logEvent", logEvent =>
                {
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("Message: {0}", logEvent.RenderedMessage);
                    Console.ResetColor();
                });

                //Change the LogEventLevel the client listens to every 8 seconds
                Task.Factory.StartNew(() =>
                {
                    while (true)
                    {
                        var newLevel = ((LogEventLevel) new Random().Next(0, 5)).ToString();
                        client.Controller("log").SetEnum("LogEventLevel", newLevel);
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine("New LogEventLevel set to {0}", newLevel);
                        Console.ResetColor();
                        Thread.Sleep(8000);
                    }
                });

                Console.WriteLine("Hit enter to quit");
                Console.ReadLine();
            }
        }
        static void Main(string[] args)
        {
            var c = new XSocketClient("ws://127.0.0.1:4502", "http://localhost", "demo");

            c.Controller("demo").OnOpen += (sender, connectArgs) => Console.WriteLine("Demo OPEN");
            c.Controller("demo").On <MyModel>("addorupdated", model => Console.WriteLine("Updated " + model.Name));
            c.Controller("demo").On <MyModel>("removed", model => Console.WriteLine("Removed " + model.Name));
            c.Open();
            for (var i = 0; i < 10; i++)
            {
                var m = new MyModel()
                {
                    Id = Guid.NewGuid(), Name = "Person Nr" + i, Age = i
                };
                c.Controller("demo").Invoke("AddOrUpdateModel", m);
                Thread.Sleep(2000);
                c.Controller("demo").Invoke("RemoveModel", m);
                Thread.Sleep(2000);
            }
            Console.ReadLine();
        }
예제 #6
0
        static void Main(string[] args)
        {
            //Connect to the XSockets instance hosted in Owin
            var c = new XSocketClient("ws://localhost:12345", "http://localhost", "stock");

            c.OnConnected += (sender, eventArgs) => Console.WriteLine("CONNECTED");

            c.Open();

            //Set the 'mystocks' property on the controller to 'MSFT' and 'XNET'
            c.Controller("stock").SetProperty("MyStocks", new List <string>()
            {
                "MSFT", "XNET"
            });

            //Listen for 'tick', but we use dynamic since we have no reference to the class Stock
            c.Controller("stock").On <Stock>("tick", s =>
            {
                Console.WriteLine("{0}:{1}", s.Symbol, s.Price);
            });

            Console.ReadLine();
        }
 public void initializeXSocket()
 {
     // connect
     c = new XSocketClient("ws://" + SERVER_IP + ":" + PORT, "http://localhost", "generic");
     // socket events
     //c.OnConnected += (sender, eventArgs) => Messages.AppendText(Environment.NewLine + "Connected!" + Environment.NewLine);
     //c.OnDisconnected += (sender, eventArgs) => Messages.AppendText(Environment.NewLine + "Disconnected!" + Environment.NewLine);
     // controller events
     c.Controller("generic").OnOpen += (sender, connectArgs) =>
     {
         this.Invoke(
             new Action(() =>
             {
                 Messages.AppendText("Welcome to " + roomName + Environment.NewLine);
             }));
         c.Controller("generic").Invoke("joinRoom", new { sid=sid, nick = nick, roomName = roomName });
     };
     // custom events
     c.Controller("generic").On<dynamic>("clientJoined", data =>
     {
         int dorder = data.order;
         string dnick = data.nick;
         int dsid = data.sid;
         this.Invoke(
             new Action(() =>
             {
                 Messages.AppendText(dnick + " joined room." + Environment.NewLine);
             }));
         sidToGuest.Add(dsid, new GuestData { order=dorder, nick=dnick });
     });
     c.Controller("generic").On<int>("clientLeft", clientSid =>
     {
         GuestData g = sidToGuest[clientSid];
         this.Invoke(
             new Action(() =>
             {
                 Messages.AppendText(g.nick + " left room." + Environment.NewLine);
             }));
         sidToGuest.Remove(clientSid);
     });
     c.Controller("generic").On<dynamic>("msgSent", data =>
     {
         string dcontent = data.content;
         int dsid = data.authorSid;
         GuestData g = sidToGuest[dsid];
         this.Invoke(
             new Action(() =>
             {
                 Messages.AppendText(g.nick + ": " + dcontent + Environment.NewLine);
             }));
     });
     c.Controller("generic").On<Messages[]>("fetchMessages", messages =>
     {
         this.Invoke(
             new Action(() =>
             {
                 foreach (Messages msg in messages) {
                     Messages.AppendText(msg.nick + ": " + msg.message + Environment.NewLine);
                 }
             }));
     });
     c.Controller("generic").On<dynamic>("receiveFrame", data =>
     {
         int dsid = (int)data.sid;
         byte[] dframe = data.frame;
         bool hide = data.hide;
         GuestData g = sidToGuest[dsid];
         GuestData me = sidToGuest[sid];
         int order = g.order - (g.order > me.order ? 1 : 0);
         this.Invoke(
             new Action(() =>
             {
                 if (hide)
                 {
                     receivePics[order].Image = receivingDefault;
                 }
                 else
                 {
                     using (var stream = new MemoryStream(dframe))
                     {
                         Bitmap frame = new Bitmap(stream);
                         receivePics[order].Image = frame;
                     }
                 }
             }));
     });
 }
 public void leaveRoom()
 {
     c.Controller("generic").Invoke("leaveRoom");
     c.Controller("generic").Close();
     //c.Disconnect();
 }