Sub Process_Globals
    Private const API_KEY As String = ""
    Private server As ServerSocket
    Public connected As Boolean
    Private astream As AsyncStreams
End Sub
Sub AppStart (Args() As String)
    server.Initialize(51042, "server")
    server.Listen
    
    
    StartMessageLoop
End Sub
Sub server_NewConnection (Successful As Boolean, NewSocket As Socket)
    Log("new connection")
    astream.Initialize(NewSocket.InputStream, NewSocket.OutputStream, "Astream")
    server.Listen
End Sub
Sub Astream_NewData (Buffer() As Byte)
    If Buffer(0) = 0 Then
        Log("Button is down.")
    Else
        Log("Button is up.")
        SendMessage("general", "ATENCION", "paro de linea")
    End If
    astream.Write("Thank you for this useful information.".GetBytes("UTF8"))
End Sub
Private Sub SendMessage(Topic As String, Title As String, Body As String)
    Dim Job As HttpJob
    Job.Initialize("fcm", Me)
    Dim m As Map = CreateMap("to": $"/topics/${Topic}"$)
    Dim data As Map = CreateMap("title": Title, "body": Body)
    If Topic.StartsWith("ios_") Then
        Dim iosalert As Map =  CreateMap("title": Title, "body": Body, "sound": "default")
        m.Put("notification", iosalert)
        m.Put("priority", 10)
    End If
    m.Put("data", data)
    Dim jg As JSONGenerator
    jg.Initialize(m)
    Job.PostString("https://fcm.googleapis.com/fcm/send", jg.ToString)
    Job.GetRequest.SetContentType("application/json;charset=UTF-8")
    Job.GetRequest.SetHeader("Authorization", "key=" & API_KEY)
End Sub
Sub JobDone(job As HttpJob)
   Log(job)
   If job.Success Then
     Log(job.GetString)
   End If
   job.Release
'   ExitApplication '!
End Sub