在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  HTML/ websocket判斷IP的問題?

websocket判斷IP的問題?

利用websocket做一個web聊天室,前臺通過socket.io發(fā)送信息給后臺(Flask-SocketIO),后臺收到后再推送給所有客戶端,想對這個數(shù)據(jù)增加一個status屬性,當接收方就是發(fā)送信息的那個客戶端時,這個屬性值是self,否則是other,請問怎么實現(xiàn)呢?


后端代碼:

@socketio.on('message')
def handler_message(data):
    user = data.get('user')
    content = data.get('msg')
    chat_time = datetime.now()
    ip = session['ip']
    log = Logs(username=user, address=ip, content=content, chat_time=chat_time)
    db.session.add(log)
    db.session.commit()
    data['chat_time'] = str(chat_time)
    socketio.emit('res', data)

前端代碼:

var socket = io.connect('http://' + document.domain + ':' + location.port);
var click = function () {
    socket.emit('message', {
        'msg': msg,
        'user': user
    });
};
socket.on("res", function (resp) {
    console.log(resp);
}) 
回答
編輯回答
貓館

其實你的客戶端已經(jīng)可以判斷出消息發(fā)送者了, 只要對比自身的 user 與消息中的 user.

在這種情況下,客戶端可以偽造發(fā)送者, 不如在 handler_message 內(nèi), 給廣播消息添加 sender 屬性.

2018年6月15日 18:32
編輯回答
離殤

改一下socketio.emit('res', data)
手動遍歷。自己發(fā)的就是對應的socket是當前的socket

2017年9月19日 19:39