xmpp: RECEIVE MESSAGES!

This commit is contained in:
2022-01-01 21:24:27 +01:00
parent f22d042255
commit 1acc2630b4
17 changed files with 250 additions and 113 deletions

View File

@@ -1,8 +1,10 @@
import "package:moxxyv2/xmpp/jid.dart";
abstract class XmppEvent {}
class MessageEvent extends XmppEvent {
final String body;
final String fromJid;
final FullJID fromJid;
final String sid;
MessageEvent({ required this.body, required this.fromJid, required this.sid });

View File

@@ -30,7 +30,17 @@ class BareJID extends JID {
class FullJID extends JID {
FullJID({ required String local, required String domain, required String resource }) : super(local: local, domain: domain, resource: resource);
BareJID toBare() {
return BareJID(local: this.local, domain: this.domain);
}
static FullJID fromString(String fullJid) {
final jidParts = fullJid.split("@");
final other = jidParts[1].split("/");
return FullJID(local: jidParts[0], domain: other[0], resource: other[1]);
}
String toString() {
return "${this.local}@${this.domain}/${this.resource}";
}

View File

@@ -1,6 +1,7 @@
import "package:moxxyv2/xmpp/stanzas/stanza.dart";
import "package:moxxyv2/xmpp/connection.dart";
import "package:moxxyv2/xmpp/events.dart";
import "package:moxxyv2/xmpp/jid.dart";
bool handleMessageStanza(XmppConnection conn, Stanza stanza) {
final body = stanza.firstTag("body");
@@ -8,7 +9,7 @@ bool handleMessageStanza(XmppConnection conn, Stanza stanza) {
conn.sendEvent(MessageEvent(
body: body.innerText(),
fromJid: stanza.attributes["from"]!,
fromJid: FullJID.fromString(stanza.attributes["from"]!),
sid: stanza.attributes["id"]!
));