Python GCM,我怎么知道XMPP数据包的结尾?
我正在用Python实现一个Google云消息传递XMPP服务器。我可以连接到GCM并进行身份验证,但是我使用的是Python GCM,我怎么知道XMPP数据包的结尾?,python,sockets,xmpp,google-cloud-messaging,Python,Sockets,Xmpp,Google Cloud Messaging,我正在用Python实现一个Google云消息传递XMPP服务器。我可以连接到GCM并进行身份验证,但是我使用的是self.ssl\u sock.recv(1024),这并不好,但对身份验证有效 但是,当我以后想从GCM接收消息时,我会在套接字上读取消息,但是我要读取多少字节??我在xmpp文档中找不到任何关于某种报头的信息,这种报头可以告诉数据包/数据的长度 def read_from_socket(self): data = self.ssl_sock.recv(??)
self.ssl\u sock.recv(1024)
,这并不好,但对身份验证有效
但是,当我以后想从GCM接收消息时,我会在套接字上读取消息,但是我要读取多少字节??我在xmpp文档中找不到任何关于某种报头的信息,这种报头可以告诉数据包/数据的长度
def read_from_socket(self):
data = self.ssl_sock.recv(??)
self.handle_message(data)
XMPP不使用框架,因此没有标题。您需要使用流式(如SAX)XML解析器(如expat)解析XML流。可以通过跟踪解析器树的深度来确定“数据包”的XMPP等价物 然而,如果您是XMPP新手,我强烈建议您使用这个库,而不是尝试自己从头开始正确地编写所有这些内容 您正在使用Python。一个好的库是SleekXMPP,它也是本书中用于代码示例的库 更多信息:
- Github:
- 文件:
- PyPi: