'Class module
Sub Class_Globals
Private mModule As Object
Private mEventName As String
Dim ws As WebSocket
End Sub
Public Sub Initialize(pModule As Object, pEventName As String)
mModule = pModule
mEventName = pEventName
ws.Initialize("ws")
End Sub
Private Sub ws_Connected
Log("Connected")
End Sub
Private Sub ws_Closed (Reason As String)
Log("Close - " & Reason)
End Sub
Public Sub SendMessageToCloud(Msg As String)
SendEventToServer("Device_MessageFrom", CreateMap("text": Msg))
End Sub
'Raises an event on the server. The Event parameter must include an underscore
Public Sub SendEventToServer(Event As String, Data As Map)
Dim m As Map
m.Initialize
m.Put("type", "event")
m.Put("event", Event)
m.Put("params", Data)
Dim jg As JSONGenerator
jg.Initialize(m)
ws.SendText(jg.ToString)
End Sub
Sub SendToServer(msg As String)
Dim data As Map
data.Initialize
data.Put("message", msg)
SendEventToServer("cloud_message", data)
End Sub
Sub server_incoming(Params As List)
Dim msg As String
msg = Params.Get(0)
Log(msg)
End Sub
Sub Disconnect
ws.Close
End Sub
Sub Connect
' connect to WebSocket server
ws.Connect("ws://127.0.0.1:8888/app")
End Sub
' Same as SendToServer
Sub SendData(msg As String)
SendToServer(msg)
End Sub
Private Sub ws_TextMessage(msg As String)
Try
Dim jp As JSONParser
jp.Initialize(msg)
Dim m As Map = jp.NextObject
Dim etype As String = m.get("etype")
Dim params As List = m.get("value")
Dim Event As String = m.get("prop")
If etype = "runFunction" Then
If Event = "server_incoming" Then
server_incoming(params)
End If
End If
Catch
Log("TextMessage Error: " & LastException)
End Try
End Sub