我正在製作一個與Twisted套接字通信的iPhone應用程序,當我有一條消息發送時它工作得很好。然而,我的問題是我需要發送許多不同的信息到應用程序。這是我的代碼。扭曲套接字立即發送消息
if numrows == 1:
#Did login
msg = "%s: Login Credentials Success" % _UDID
print msg
for c in self.factory.clients:
c.message(msg)
time.sleep(0.5)
for result in results:
for i in range(1, 6):
msg = "%s:L%d;%s" % (_UDID, i, result[i])
print msg
for c in self.factory.clients:
c.message(msg)
time.sleep(0.5)
else:
msg = "%s: Login Credentials Failed" % _UDID
print msg
for c in self.factory.clients:
c.message(msg)
time.sleep(0.5)
cursor.close()
database.close()
#print msg
#for c in self.factory.clients:
#c.message(msg)
def message(self, message):
self.transport.write(message)
說我是派只是第味精,和所有其他味精並沒有隨着印刷和每個味精以下方式存在,消息登錄憑據成功將被髮送到應用程序。但是,如果像你如何看待它一樣放在其他地方,即使在代碼中放一段時間,它也不會一下子發生,因爲它一次發送完畢。
該應用程序每隔0.05秒或更少檢查響應。儘管登錄憑證位於頂部,但它並未通過,因爲之後會發送更多信息,但沒有憑證消息之後的所有信息都會通過。
我非常渴望找到答案。我試過了我能想到的一切。該應用程序不是問題,它是Python。
謝謝。
請勿在Twisted reactor線程中使用time.sleep(或任何阻塞函數)。 –
@ Jean-PaulCalderone我用它來測試它,但它不起作用。在發佈後我發現不使用time.sleep()。 – Alec