Mittwoch, 23. Oktober 2013

Ermitteln wann Chat Partner im Facebook Chat tippt

Heute möchte ich nur ganz kurz zeigen, wie man mit C# ermittelt, wann ein Chat Partner im Facebook Chat tippt - so wie dies zum Beispiel auch auf Facebook angezeigt wird.
Grundlage hierfür ist der vorige Post über das Empfangen von Nachrichten. Von da aus muss nur eine Kleinigkeit geändert werden, denn das "Tipp" Ereignis wird wie eine Chat Nachricht versendet: Die Nachricht hat dann keinen Body, dafür steht die Eigenschaft Chatstate auf Composing. Hört der Benutzer auf zu tippen, wird eine Nachricht mit Chatstate active gesendet.
Eine beispielhafte MessageCallback Funktion könnte dann so aussehen:

private void MessageCallBack(object sender, agsXMPP.protocol.client.Message msg, object data)
{
    if (msg.Body != null)
    {
        MessageBox.Show(msg.From + ": " + msg.Body);
    }
    else
    {
        if (msg.Chatstate == agsXMPP.protocol.extensions.chatstates.Chatstate.composing)
            MessageBox.Show(msg.From + ": Started Typing");
        if (msg.Chatstate == agsXMPP.protocol.extensions.chatstates.Chatstate.active)
            MessageBox.Show(msg.From + ": Stopped Typing");
    }
}
Dazu ist aber noch zu erwähnen, dass diese Funktion leider nicht wirklich gut funktioniert. Der Beginn einer Nachrichteneingabe wird einwandfrei übermittelt, das Ende leider öfter nicht. Deswegen habe ich darüber nachgedacht, mit einem Timer den Status "Tippt" zurückzusetzen. Falls jemand einen besseren Vorschlag hat, würde ich mich über Kommentare freuen.

Keine Kommentare:

Kommentar veröffentlichen