Exemple #1
0
def doConnectionLost(conn):
    '''当客户端断开连接时,调用该方法'''
    str2 = '%d is logout\r\n' % conn.transport.sessionno
    lis = GlobalObject().netfactory.connmanager._connections.keys(
    )  # 获取所有在线的客户端的session_no
    lis.remove(conn.transport.sessionno)  # 移除当前登录的客户端的session_no
    GlobalObject().netfactory.pushObject(10001, str2, lis)  # 向其他客户端发送下线消息
Exemple #2
0
def speak_10001(_conn, data):
    '''用户发言的方法'''
    date = datetime.now()
    str1 = date.strftime("%Y-%m-%d %H:%M:%S") + '(' + str(
        _conn.transport.sessionno) + '):\r\n' + data
    lis = GlobalObject().netfactory.connmanager._connections.keys()  # 获取所有在线用户
    lis.remove(_conn.transport.sessionno)  # 移除发言者本身
    GlobalObject().netfactory.pushObject(10001, str1, lis)  # 向用户群发送当前发言者的发言信息
Exemple #3
0
def speak_10001(_conn, data):
    '''发消息接口,定义客户端访接口,命令码是10001'''
    date = datetime.now()
    str1 = date.strftime("%Y-%m-%d %H:%M:%S") + ' (' + str(
        _conn.transport.sessionno) + '):\r\n' + data  # 拼装字符串
    lis = GlobalObject().netfactory.connmanager._connections.keys(
    )  # 获取所有在线的客户端的session_no
    lis.remove(_conn.transport.sessionno)  # 移除当前登录的客户端的session_no
    GlobalObject().netfactory.pushObject(10001, str1, lis)  # 向其他客户端发送发言消息
Exemple #4
0
def doConnectionMade(conn):
    '''当有客户端连接时,调用该方法'''
    str1 = 'welcome\r\n'
    GlobalObject().netfactory.pushObject(
        10001, str1, [conn.transport.sessionno])  # 向登录的客户端发送欢迎信息
    str2 = '%d is login\r\n' % conn.transport.sessionno
    lis = GlobalObject().netfactory.connmanager._connections.keys(
    )  # 获取所有连接的客户端的session_no
    lis.remove(conn.transport.sessionno)  # 移除当前登录的客户端的session_no
    GlobalObject().netfactory.pushObject(10001, str2, lis)  # 向其他客户端发送上线消息
Exemple #5
0
def doConnectionMade(conn):
    '''连接建立时调用的方法'''
    str1 = 'welcome\r\n'
    GlobalObject().netfactory.pushObject(10001, str1,
                                         [conn.transport.sessionno])

    str2 = '{0} is login\r\n'.format(conn.transport.sessionno)
    lis = GlobalObject().netfactory.connmanager._connections.keys()  # 获取所有在线用户
    lis.remove(conn.transport.sessionno)  # 移除登录者本身
    GlobalObject().netfactory.pushObject(1000, str2, lis)  # 向用户群发送当前登录者登录信息
Exemple #6
0
def pushObjectOthers(topicID, msg, exclude_list):
    lis = GlobalObject().netfactory.connmanager._connections.keys()  #获取所有在线用户
    for i in exclude_list:
        if i in lis:
            lis.remove(i)
    GlobalObject().netfactory.pushObject(topicID, msg, lis)
Exemple #7
0
def doConnectionLost(conn):
    '''连接断开时调用的方法'''
    str2 = '{0} is logout\r\n'.format(conn.transport.sessionno)
    lis = GlobalObject().netfactory.connmanager._connections.keys()  # 获取所有在线用户
    lis.remove(conn.transport.sessionno)  # 移除下线者本身
    GlobalObject().netfactory.pushObject(10001, str2, lis)  # 向用户群发送当前下线者下线信息