美文网首页
Python 3.5.2实现websocket服务端(四): W

Python 3.5.2实现websocket服务端(四): W

作者: 老胡写着玩 | 来源:发表于2017-09-13 17:23 被阅读0次
    #删除连接,从集合中删除连接对象item
    def deleteconnection(item):
        global connectionlist
        del connectionlist['connection'+item]
    
    #WebSocket服务器对象()
    class WebSocketServer(object):
        def __init__(self):
            self.socket = None
            self.i = 0
        #开启操作
        def begin(self):
            self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            ip = '10.1.80.83'
            port = 8080
            self.socket.bind((ip,port))
            self.socket.listen(50)
            #全局连接集合
            global connectionlist     
            while True:
                #服务器响应请求,返回连接客户的信息(连接fd,客户地址)
                connection, address = self.socket.accept()
                #根据连接的客户信息,创建WebSocket对象(本质为一个线程)
                #sockfd,index,用户名,地址
                newSocket = WebSocket(connection,self.i,address[0],address)
                #线程启动
                newSocket.start()
                #更新连接的集合(hash表的对应关系)-name->sockfd
                connectionlist['connection'+str(self.i)]=connection
                self.i += 1
    
    if __name__ == "__main__":
        server = WebSocketServer()
        server.begin()
    

    说明

    在实例化一个WebSocketServer对象后,调用对象的begin方法,将启用WebSocket服务端程序,一旦接受到客户端的访问请求,则通过实例化一个WebSocket对象,并调用对象的start方法来处理客户端请求,并同时将客户端的socket connection信息保存在字典中供后续使用,后面一个篇幅会详细介绍WebSocket类。

    相关文章

      网友评论

          本文标题:Python 3.5.2实现websocket服务端(四): W

          本文链接:https://www.haomeiwen.com/subject/yjllsxtx.html