大约每15天与Firebase Cloud Messaging(FCM)的XMPP连接都会关闭,重新连接的正确方法是什么?

时间:2019-05-08 16:07:57

标签: firebase-cloud-messaging xmpp xmpppy

为什么我收到否决票? FCM服务器正在断开连接,我不知道为什么,我尝试重新连接,但再次断开连接 我想对此问题进行解释

我有一个使用库Xmpppy的XMPP python客户端,它可以正常工作很多天,经过几天的运行,库显示错误,因为FCM关闭了服务器 这是显示的错误

IOError:与服务器断开连接

我用try catch捕获了异常,后来我重新启动了连接

class Client_xmpp:      
    def __init__(self):
        self.SASL_DOMAIN = 'fcm.googleapis.com'
        self.FCM_ENDPOINT = 'fcm-xmpp.googleapis.com'
        self.PORT = 5235
        self.USERNAME = "secret"
        self.PASSWORD = "secret" 
        self.client = xmpp.Client(self.SASL_DOMAIN, debug=['socket'],
                                        port=self.PORT)                           
        self.client.connect(server=(self.FCM_ENDPOINT ,self.PORT), secure=1, use_srv=False)

    def restart(self):  
        self.__init__()
        self.start()

    def start(self,temporal=False):
        try:            
            auth = self.client.auth(self.USERNAME, self.PASSWORD)
            if not auth:
              print 'Authentication failed!'
              sys.exit(1)   

            print "suceess !!!!!!!!!!!!!!!!"
            self.client.RegisterHandler('message', self.message_callback)           
            if temporal:
                self.temporal_loop()
            else:               
                self.infinite_loop() 

        except Exception as e:                          
            print e
            time.sleep(2)           
            self.restart()

我可以重新启动连接,但几分钟或几小时后FCM再次关闭服务器,我遇到相同的错误

IOError:与服务器断开连接

并且我有6个XMPP客户端在Amazon ECS上运行,并且同一天,这6个正在运行的XMPP客户端发生相同的问题

由于这个原因,XMPP客户端整天失败

我的XMPP客户端失败1天后,一切正常,但是大约15天后又再次出现相同的问题,这是一个重复的周期

为什么会这样?重新启动连接的正确方法是什么?

0 个答案:

没有答案