问题描述
客户端未与服务器端连接。
服务器端代码:
from flask import Blueprint,render_template
from hook.routes.auth import login_required
# from flask_socketio import emit,join_room,leave_room
from .. import socketio
chat = Blueprint('chat',__name__)
@chat.route('/')
@login_required
def index():
""" chat page if user is logged in """
return render_template('main/chat.html')
@socketio.on('connecting',namespace='/chat')
def connected(data):
print("""
connecting server-side...
""")
print(data)
客户端代码console.log(“已连接Javascript(聊天脚本)”。)
document.addEventListener('DOMContentLoaded',() => {
// Connect to Websocket
var socket = io.connect(location.protocol + '//' + document.domain + ':' + location.port + '/chat');
console.log("Starting sockets! " + location.protocol + '//' + document.domain + ':' + location.port + '/chat')
// When connected
socket.on('connect',() => {
console.log("Connecting script...");
socket.emit('connecting',{'data': 'I\'m connected!'});
})
});
没有错误,但是服务器端没有从客户端接收数据。
解决方法
将事件的名称更改为其他名称将使代码起作用。 我将事件名称“ connecting”更改为其他名称(“ connected”),甚至尝试 也就是说。仍然有效。
客户端代码:
console.log("Javascript (chat-script) connected.")
document.addEventListener('DOMContentLoaded',() => {
// Connect to Websocket
var socket = io.connect(location.protocol + '//' + document.domain + ':' + location.port + '/chat');
// When connected
socket.on('connect',() => {
console.log("Connecting script...");
socket.emit('connected',{'data': 'I\'m connected!'});
});
});
服务器端代码:
from flask import Blueprint,render_template
from hook.routes.auth import login_required
# from flask_socketio import emit,join_room,leave_room
from .. import socketio
chat = Blueprint('chat',__name__)
@chat.route('/')
@login_required
def index():
""" chat page if user is logged in """
return render_template('main/chat.html')
@socketio.on('connected',namespace='/chat')
def connected(data):
print("""
connecting server-side...
""")
print(data['data'])
现在,它可以正常工作了。