python flask-socketio 패키지를 통해 SocketIO를 사용하는 응용 프로그램을 만들려고합니다. 나는 같은 내 서버를 설정 한 :손상된 socket.io.js 파일을 제공하는 Flask 개발 서버
파일 ./run.py
from my_project import app, socketio
if __name__ == '__main__':
socketio.run(app, host='0.0.0.0', debug=True)
"정의되지 않은"파일 ./my_project/__init__.py
from flask import Flask
from flask_socketio import SocketIO
app = Flask(__name__)
app.config['SECRET_KEY'] = 'MY SECRET KEY'
socketio = SocketIO(app)
@socketio.on('connect')
def print_connect():
print('Client connected')
@socketio.on('disconnect')
def print_disconnect():
print('Client disconnected')
from my_project import views
내가 얻고 있었다
오류, 클라이언트에서 그것을 사용하려고 내가 Chrome이 서버에서 가져온 socket.io.js
파일을 열었습니다. 다음 내용 (전체 내용)에 놀랄뿐입니다.
�0{"pingTimeout":60000,"sid":"3d6073ff436c49b1aa06090dbb001ceb","upgrades":[],"pingInterval":25000}�40
내 응용 프로그램과 아무 관련이 없는지 다시 한 번 확인하려면 정확히 동일한 왜곡 된 문자열을 반환하는 curl 127.0.0.1:5000/socket.io/socket.io.js
명령으로 파일을 검색했습니다.
어떤 식 으로든 Express를 사용하고 있지는 않습니다. (알고있는 한 알 수있는대로) 클라이언트 socket.io 파일을 소싱하는 것에 대한 대부분의 다른 질문은 적용되지 않는 것 같습니다. 또한, 서버에서 404를 얻지 못하고 있는데, 어떤 종류의 데이터가 인 200 및 이 표시됩니다.
서버가 명백하게 손상된 socket.io 파일을 처리하는 이유를 해결하려면 어떻게해야합니까?
어디에 문제가 있는지 알 수 있습니다. 나는 공식 SocketIO [시작하기] (https://socket.io/get-started/chat/) 문서를 읽고 있는데, 클라이언트의 마법 경로 문자열을 사용하는 곳이다. ] (https://stackoverflow.com/questions/26480991/how-nodejs-and-socket-io-serve-socket-io-js?rq=1)). 마술 경로가 파이썬 바인딩이 아닌 공식적인 서버 측 node.js 패키지에만 존재할 수있을 때까지는 지금까지 나에게 아무런 변화가 없었다. 나는 설치로 인해 어떤 것이 손상되었다고 걱정했다. 그래도 나는 단지 404를 얻지 않았다라고 나에게 별 났던 것처럼 보인다. –
예, 파이썬 서버는 실제로 바인딩이 아니며 Node.js 공식 구현과 코드를 공유하지 않는 전체 서버입니다. URL 구문 분석을 향상시키고이 경우 404를 반환 할 수 있다고 생각하지만, 현재는/socket.io /로 시작하는 모든 것이 서비스의 폴링/websocket 끝점으로 간주됩니다. – Miguel