我如何使用c#中任何可靠的XMPP库连接FCM服务器

本文关键字:XMPP 连接 FCM 服务器 何使用 任何可 | 更新日期: 2023-09-27 18:07:47

谁能帮助我连接FCM (Firebase云消息)服务器使用XMPP库使用c# ?

我想使用XMPP发送推送通知。

我正在尝试使用夏普连接它。Xmpp如下,

public class XmppConnector
    {
        public XmppConnector()
        {
            string hostname = "fcm-xmpp.googleapis.com";
            string username = "exmple@gcm.googleapis.com";
            string password = "example";
            using (XmppClient client = new XmppClient(hostname, username, password))
            {
                try
                {
                    // Setup any event handlers before connecting.
                    client.Message += OnNewMessage;
                    // Connect and authenticate with the server.
                    client.Connect();
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
        /// <summary>
        /// Invoked whenever a new chat-message has been received.
        /// </summary>
        private void OnNewMessage(object sender, Sharp.Xmpp.Im.MessageEventArgs e)
        {
            Console.WriteLine("Message from <" + e.Jid + ">: " + e.Message.Body);
            //throw new NotImplementedException();
        }
    }

但它不起作用,我甚至尝试了另一个端口(5235和5236)。如果你有任何例子,请分享。

我如何使用c#中任何可靠的XMPP库连接FCM服务器

我使用https://github.com/ForNeVeR/Jabber-Net

myJabberClient = new JabberClient();
myJabberClient.User = Globales.FIRABASE_MESSAGING_USER + "@gcm.googleapis.com";
myJabberClient.Password = Globales.FIREBASE_MESSAGING_KEY;
myJabberClient.Server = Globales.FIRABASE_GCM_XMPP_SERVER;
myJabberClient.Resource = "MyTestClient";
myJabberClient.Port = 5235;
myJabberClient.AutoReconnect = 1;
myJabberClient.AutoPresence = false;
myJabberClient.AutoRoster = false;
myJabberClient.KeepAlive = 10;
myJabberClient.PlaintextAuth = true;
myJabberClient.AutoLogin = true;
myJabberClient.AutoStartTLS = false;
myJabberClient.SSL = true;
myJabberClient.OnMessage += async (s, msg) => {
   // Do stuff here
}
myJabberClient.Connect();

我用HTTP API做推送通知。我只是在向CCS服务器发送上游收到的消息的ACK消息时遇到问题,因为一些注册id

中的":"字符

我是用Jabber-net库完成的,你可以从这里,它包含了库和一些例子来了解如何连接到fcm,也可以通过nuget包管理器下载包名为jabber-net选择最新版本。