如何将Websocket Handshake实现到此服务器中?

时间:2015-01-21 10:34:54

标签: python sockets websocket twisted

我需要在我的Python服务器中实现Websocket Handshake。我的python服务器正在使用Twisted进行事件处理。我发现this webpage解释了这个过程,但是当谈到这一点时,我真的很想我。那么如何在下面的服务器代码中实现Websocket握手:(抬起头来,我已经从服务器中取出了所有项目特定的代码,以便于阅读)

import os
from twisted.internet.protocol import Protocol, Factory
from twisted.internet import reactor


class IphoneChat(Protocol):

    def connectionMade(self):
        #self.transport.write("""connected""")
        #self.factory.clients.append(self)
        print "A new client has connected"

    def connectionLost(self, reason):
        for c in self.factory.clients:
            if c == self:
                self.factory.client.remove(self)


        print "client disconnected"

    def dataReceived(self, data):
        #print "Message Received: ", data


    def message(self, message):
        self.transport.write(message + '\n')


factory = Factory()
factory.protocol = IphoneChat
factory.clients = []


port = 3000
print "Server started: "
print port


reactor.listenTCP(port, factory)

reactor.run()

1 个答案:

答案 0 :(得分:1)

首先,请注意您找到的页面是用于尚未实际包含Twisted的开发中功能的文档。如果不采取您可能不想采取的特殊额外步骤,您将无法使用您在该页面上阅读的任何内容。

接下来,看看http://autobahn.ws/python/,它提供了一个Twisted友好的Python库,用于编写WebSockets客户端。