所以我正在尝试使用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也能够加入特定的聊天室。
任何帮助将不胜感激。