Intro to using the C# JniorWebSocket Library
Written by Kevin Cloutier on Jul 26, 2024 1:23 pm
Intro
/**
* this is very simple example that uses anonymous inline event handlers. anonymous inline event handlers
* are most likely not the correct arichitecture for your application. they are only used in this example
* to group all of the useful event handlers in one place.
*/
//
// instantiate our JniorWebSocket object
JniorWebSocket jniorWebSocket = new JniorWebSocket("10.0.0.63");
//
// handler for logging from our jnior websocket object
jniorWebSocket.Log += delegate (object sender2, LogEventArgs args)
{
Console.WriteLine(args.Message);
};
//
// handler that is called when the connection gets established. the connection is established when
// the socket has been connected. this does not mean that the connection is authenticated and ready
// to use
jniorWebSocket.Connected += delegate (object sender2, EventArgs args)
{
Console.WriteLine("connected!");
};
//
// handler that is called when the connection gets disconnected
jniorWebSocket.Disconnected += delegate (object sender2, EventArgs args)
{
Console.WriteLine("disconnected!");
};
//
// handler that is called when the connection experiences an error
jniorWebSocket.Error += delegate (object sender2, ExceptionEventArgs args)
{
Console.WriteLine($"error: {args.Exception.Message}\n{args.Exception.StackTrace}");
};
//
// handler that gets called when ANY packet is received. check the Message property for the message type
jniorWebSocket.MessageReceived += delegate (object sender2, MessageReceivedEventArgs args)
{
JObject json = JObject.Parse(args.Message);
Console.WriteLine($"json: {json}");
};
//
// handler that gets called when the default credentials fail. this gives the writer of the application a
// chance to collect or provide the proper credentials
jniorWebSocket.Unauthorized += delegate (object sender2, UnauthorizedEventArgs args)
{
Console.WriteLine("need proper credentials to log in!");
//
// provide the proper credentials. the example JNIOR has a changed password.
jniorWebSocket.Login("jnior", "jnior2");
};
//
// handler called after the connection has successfully been authenticated
jniorWebSocket.Authenticated += delegate (object sender2, EventArgs args)
{
Console.WriteLine("authenticated!");
};
//
// the event handlers are set up. now call to establish the connection
jniorWebSocket.Connect();
//
// the jniorWebSocket object may be connected at this point but it is not fully ready to use. any
// message sent that requires authentication will not be allowed until the login procedure has been
// completed.
Console.WriteLine($"jniorWebSocket opened: {jniorWebSocket.IsOpened}");
if (jniorWebSocket.IsOpened)
{
//
// to wait for the login to be completed we can loop waiting for the IsAuthenticated flag to be TRUE
while (!jniorWebSocket.IsAuthenticated)
{
Thread.Sleep(1000);
}
Console.WriteLine("jniorWebSocket is authenticated!");
}
On this page
Tags