We get a lot of requests on howto use the MatriX XMPP SDK with Google Firebase Cloud Messaging.
The following are the settings for your XmppClient object
- The XMPP domain is: gcm.googleapis.com
- The hostname is: fcm-xmpp.googleapis.com
- It looks like there are no SRV records in place, this is why you need to set the hostname manual and disable SRV record lookups
- Firebase does not support XMPP’s StartTls feature and requires to initiate a TLS connection. This is how we have done it in the old days when the protocol still was called Jabber. The OldStyleSsl property takes care of this in MatriX’s XmppClient.
- Firebase is using a non standard XMPP port, because no SRV records are in place we have to set port 5236 manual in the code
- the username is your Firebase Sender Id and the password is your server key. You find them in the Firebase portal under Settings => Cloud Messagging
- the contact list and presence feature is not require. So we can disable it by setting AutoRoster and AutoPresence to false
XmppClient xmppClient = new XmppClient
{
XmppDomain = "gcm.googleapis.com",
Hostname = "fcm-xmpp.googleapis.com",
Port = 5236,
ResolveSrvRecords = false,
OldStyleSsl = true,
Username = "YOUR_FIREBASE_SENDER_ID",
Password = "YOUR_FIREBASE_SERVER_KEY",
AutoRoster = false,
AutoPresence = false
};
xmppClient.Open();
You can find a basic example also here in our GIT repository:
https://gitlab.com/matrix-xmpp/samples/tree/master/csharp/FirebaseClient
Leave a Reply