Page 1 of 1

Führen Sie einen einfachen Flask -Web -Socket auf Render aus

Posted: 12 Mar 2025, 13:20
by Anonymous
Ich bin neu zu rendern und ich mache einen einfachen Flask -Web -Socket < /p>
Ich verwende diese Module:
, Flask_Socketio
, Flask
, Gunicorn (um mein Skript auf Render -Host auszuführen) < /p>
Hier ist mein Code für Server -Seite: < /p> < /p> < /p>
Hier ist mein Code für Server.

Code: Select all

from flask import Flask
from flask_socketio import SocketIO , emit

app = Flask("application")
socket = SocketIO(app)

@app.route("/")
def home():
return "This is the server side !!"

@socket.on("connect")
def cl_con():
print("A new client connected !!")

@socket.on("disconnect")
def cl_dis():
print("A client disconnected !!")

@socket.on("message")
def message(data):
emit("message",data)

if __name__ == "__main__":
socket.run(app)
< /code>
und meine Client -Seite: < /p>
import socketio as io
import threading as th

name = ""

while (name == ""):
name = input("Your name :")

def message():
while True:
msg = input()
if (msg == "exit"):
client.disconnect()
print("Disconnected !!")
exit(0)
else:
client.emit("message",f"{name}:{msg}")

client = io.Client()

client.connect("https://my_domain_name.onrender.com")
client.emit("message",f"{name} join this chat !!")

t = th.Thread(target=message)
t.daemon = True
t.start()

@client.on("message")
def msg(data):
print(data)

client.wait()
< /code>
Ich versuche, mit meinem Client-Code eine Verbindung zu Web-Socket herzustellen, die auf meinem Computer ausgeführt wird.  Das [url=viewtopic.php?t=15738]Problem[/url] ist jedoch: < /p>
1- Nach 10 Sekunden-Serverseite geben Sie diesen Fehler weiter und zeigt diesen Fehler weiterhin alle 5 Sekunden: < /p>
**[2025-03-07 09:05:06 +0000] [74] [CRITICAL] WORKER TIMEOUT (pid:87)
[2025-03-07 09:05:06 +0000] [87] [ERROR] Error handling request /socket.io/?transport=websocket&EIO=4&sid=E6-m_FkHPBxWcm5MAAAA&t=1741338267.3122072
Traceback (most recent call last):
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle
self.handle_request(listener, req, client, addr)
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 177, in handle_request
respiter = self.wsgi(environ, resp.start_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/flask/app.py", line 1536, in __call__
return self.wsgi_app(environ, start_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/flask_socketio/__init__.py", line 42, in __call__
return super().__call__(environ, start_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/engineio/middleware.py", line 63, in __call__
return self.engineio_app.handle_request(environ, start_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/socketio/server.py", line 434, in handle_request
return self.eio.handle_request(environ, start_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/engineio/server.py", line 286, in handle_request
packets = socket.handle_get_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/engineio/socket.py", line 92, in handle_get_request
return getattr(self, '_upgrade_' + transport)(environ,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/engineio/socket.py", line 151, in _upgrade_websocket
return ws(environ, start_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/engineio/async_drivers/_websocket_wsgi.py", line 15, in __call__
ret = self.app(self)
^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/engineio/socket.py", line 225, in _websocket_handler
p = websocket_wait()
^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/engineio/socket.py", line 156, in websocket_wait
data = ws.wait()
^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/engineio/async_drivers/_websocket_wsgi.py", line 32, in wait
return self.ws.receive()
^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/simple_websocket/ws.py", line 96, in receive
if not self.event.wait(timeout=timeout):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/threading.py", line 629, in wait
signaled = self._cond.wait(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/threading.py", line 327, in wait
waiter.acquire()
File "/opt/render/project/src/.venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort
sys.exit(1)
SystemExit: 1**
2-Wenn ich versuche, mit zwei Clients eine Verbindung zum Server herzustellen, erhält der zweite Client Timeout-Fehler.>