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

2017-09-13  本文已影响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类。

上一篇下一篇

猜你喜欢

热点阅读