如何将 Javascript 客户端连接到蟒蛇-套接字 IO 服务器?

我刚刚开始使用Python-SocketIO,我创建了一个示例服务器,它看起来像这样:


import eventlet

import socketio


sio = socketio.Server()


app = socketio.WSGIApp(sio, static_files={

    '/': {'content_type': 'text/html', 'filename': 'index.html'}

})


@sio.on('connect')

def connect(sid, environ):

    print('connect ', sid)


@sio.on('msg')

def message(sid, data):

    print('message ', data)


@sio.on('disconnect')

def disconnect(sid):

    print('disconnect ', sid)


if __name__ == '__main__':

    eventlet.wsgi.server(eventlet.listen(('', 5000)), app)

然后,我有一个HTML文件,它正在Django应用程序上运行,我想将该客户端连接到我的Python-SocketIO服务器:


<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"></script>

<script>


socket = io.connect('');


socket.on('connect',function() {

  console.log('Client has connected to the server!');

});


socket.on('msg',function(data) {

  console.log('Received a message from the server!',data);

});


socket.on('disconnect',function() {

  console.log('The client has disconnected!');

});


// Sends a message to the server via sockets

function send(message) {

  socket.send('msg',message);

};


</script>

问题是,在我的客户端,我不断收到以下错误:


Access to XMLHttpRequest at 'http://localhost:5000/socket.io/?EIO=3&transport=polling&t=N5eSEa2' from origin 'http://127.0.0.1:8000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

localhost:5000/socket.io/?EIO=3&transport=polling&t=N5eSEa2:1 Failed to load resource: net::ERR_FAILED

我的詹戈服务器正在运行。任何人都可以帮我找到我做错了什么吗?on http://127.0.0.1:8000/


德玛西亚99
浏览 133回答 1
1回答

PIPIONE

在服务器上设置 CORS 标头:sio&nbsp;=&nbsp;socketio.Server(cors_allowed_origins='*')(源)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go