
Configure The Connection
How to use multiple Controllers
To multiplex over several controllers on one connection you just pass in the controllers to use.
Below we connect to Controllers one and two
var conn = new XSocketClient("ws://localhost:4502", "http://localhost", "one","two");
Do note that you do not have to specify all controllers in the creation of the client. As soon as you start using a controller in the client API you will get an instance of it.
So if there is no controller three defined in the connection you can still do:
conn.Controller("three").Invoke("somemethod");
How to specify query string parameters
You can add querystrings to the NameValueCollection named QueryString on the IXSocketClient
var conn = new XSocketClient("ws://localhost:4502","http://xsockets.net", "chat");
conn.QueryString.Add("color","blue");
await conn.Open();
How to specify HTTP headers
var conn = new XSocketClient("ws://localhost:4502","http://xsockets.net", "chat");
conn.Headers.Add("headername", "headervalue");
await conn.Open();
How to specify client credentials
Connection header
var conn = new XSocketClient("ws://localhost:4502","http://xsockets.net", "chat");
conn.Headers.Add("myauthtoken", /* the token data */);
await conn.Open();
Then verify the token in a custom AuthenticationPipeline or in the OnOpen even of the specific controller
Cookie with Forms Authentication
var authTicket = new FormsAuthenticationTicket(1, "Uffe",DateTime.Now,DateTime.Now.AddMinutes(15),false, "batman|hulk");
string encTicket = FormsAuthentication.Encrypt(authTicket);
var authcookie = new Cookie(FormsAuthentication.FormsCookieName, encTicket);
conn.Cookies.Add(authcookie);
Certificate
var conn = new XSocketClient("ws://localhost:4502", "http://xsockets.net", "chat");
conn.AddClientCertificate(new X509Certificate2("mycert.pfx"));
await conn.Open();