将动态ChatRoom从客户连接到代理端

时间:2018-08-01 07:04:07

标签: python-3.x flask socket.io

所以我正在尝试使用flask-socketio建立一个Live Chat项目。

Server.py

@socketio.on('startchat',namespace='/test')
def start_chat(message):
    if message['isnewuser'] == 'true':
        message['roomID'] = str(uuid.uuid4().hex)
        emit('roomID',message['roomID'])


@socketio.on('joinadmin',namespace='/test')
def join_admin(message):
    join_room(message['roomID'])
    emit('adminjoining',str(message['roomID']))

@socketio.on('joinforadmin',namespace='/test')
def join_foradmin(message):
    join_room(message['roomID'])


@socketio.on('messaging',namespace='/test')
def msg_test(message):
    emit('msg_text',message['msg'],room=message['roomID'])

当前,我将uuid用作生成聊天室的唯一值。 在用户端,我可以连接到聊天室。

Client.html

    socket.on('roomID', function(roomID) {
    id = roomID;
    localStorage.setItem("roomID", roomID);
    socket.emit('joinadmin',{'roomID':localStorage.getItem('roomID')})
});
    $('#startchat').click(function(){
        $('#startchat').css('display','none');
        $("#here").html("<input type='text' name='inputhere' id='inputhere'><button id='newbut'>submit</button>")
        socket.emit('startchat',{'isnewuser':'true'})
    })

但是当我尝试启动在管理员端编写的功能时,它不起作用

Admin.html

socket.on('adminjoining', function(roomID) {
        console.log(roomID);
        id = roomID;
    socket.emit('joinforadmin',{'roomID':roomID})
});

发射' startchat '启动 Client.html 上的发射' roomID '功能,然后启动' joinadmin < / em>在正在启动的 Server.py 上,但是在 Admin.html <上没有启动' adminjoining '套接字功能。 / em>,尽管我在 Client.html 上通过使用' adminjoining '函数在其上对其进行了检查。 我可以猜测是因为我是从客户端启动的,有没有办法从客户端启动admin套接字,以便Admin也能够加入特定的聊天室。

任何帮助将不胜感激。

0 个答案:

没有答案