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(); }
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(); }
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(); }
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(); }
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(); }