我有一個實時多人遊戲繼續開發(它目前在應用程序商店:https://itunes.apple.com/us/app/blewp!-eat-or-be-eaten-mmo/id996122625?mt=8),我使用TCP和UDP發送實時消息(TCP用於需要可靠性的消息,如玩家死亡) ,而我的服務器端是用Python編寫的,使用Twisted作爲服務器。我經常不得不迅速發送小包,並且禁用包排隊(Nagle的算法)應該幫助包快速到達。Python Twisted TCP socket如何設置TCP_NODELAY(禁用Nagle的算法)?
我做了扭曲了一些研究,發現此設置abstract.FileDescriptor下扭曲(文檔鏈接:http://twistedmatrix.com/documents/8.1.0/api/twisted.internet.tcp.Connection.html)
我是很新的扭曲,所以可能有人告訴我如何實際調用這個設置,對於TCP協議服務器?我無法找到FileDescriptor可訪問的位置。 :(
的例子一行代碼將是很好的,建議總是讚賞;)
下面是一個簡單的例子,我做有助於解釋這個問題:
class TCPProtocol(Protocol):
def connectionMade(self):
#add to list of connected clients
factory.clients.append(self)
'''HELP HERE PLEASE!!!'''
'''EG. self.NO_DELAY=True HOW DO I SET THIS?'''
def dataReceived(self, data):
pass
def sendData(self, data):
self.transport.write(data)
#setup factory and TCP protocol class
factory = Factory()
factory.protocol = TCPProtocol
factory.clients = []
reactor.listenTCP(1959, factory)
謝謝你花時間回答這個問題。 –