Imports System.Threading.Tasks
Private Class ChatMessage
Public Property Username As String
Public Property Message As String
Public Property NumUsers As Integer
Async Function MainAsync() As Task
Using client As SocketIoClient = New SocketIoClient()
AddHandler client.Connected, Sub(sender, args) Console.WriteLine("Connected: " + args.Namespace)
AddHandler client.Disconnected, Sub(sender, args) Console.WriteLine("Disconnected")
AddHandler client.EventReceived, Sub(sender, args) Console.WriteLine("EventReceived: " + args.Value)
AddHandler client.ErrorReceived, Sub(sender, args) Console.WriteLine("ErrorReceived: " + args.Value)
AddHandler client.ExceptionOccurred, Sub(sender, args) Console.WriteLine("ExceptionOccurred: " + args.Value.ToString())
client.On(Of ChatMessage)("login", Sub(message)
Console.WriteLine("You are logged in. Total number of users: " + message.NumUsers.ToString())
client.On(Of ChatMessage)("user joined", Sub(message)
Console.WriteLine("User joined: " + message.Username)
client.On(Of ChatMessage)("user left", Sub(message)
Console.WriteLine("User left: " + message.Username)
client.On(Of ChatMessage)("typing", Sub(message)
Console.WriteLine("User typing: " + message.Username)
client.On(Of ChatMessage)("stop typing", Sub(message)
Console.WriteLine("User stop typing: " + message.Username)
client.On(Of ChatMessage)("new message", Sub(message)
Console.WriteLine("New message: " + message.Message)
Console.WriteLine("Connecting...")
Await client.ConnectAsync(New Uri("wss://socketio-chat-h9jt.herokuapp.com/"))
Await client.Emit("add user", "C# SimpleSocketIoClient Test User")
Await Task.Delay(TimeSpan.FromMilliseconds(200))
Await client.Emit("typing")
Await Task.Delay(TimeSpan.FromMilliseconds(200))
Await client.Emit("new message", "hello")
Await Task.Delay(TimeSpan.FromMilliseconds(200))
Await client.Emit("stop typing")
Await Task.Delay(TimeSpan.FromSeconds(2))