-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Open
Labels
Description
Is there an existing issue for this?
- I have searched the existing issues
Describe the bug
I recently updated my machine to the latest OS (Fedora 39). The codebase was working well before, so I suspect this might be related to the Python version:
Python: 3.12.1
Code snippet
from sanic import Request, Websocket, Sanic
from sanic.response import text
app = Sanic("MyHelloWorldApp")
@app.websocket("/stream")
async def feed(request: Request, ws: Websocket):
data = "hello!"
print("Sending: " + data)
await ws.send(data)
data = await ws.recv()
print("Received: " + data)
@app.get('/')
async def hello(request):
return text("Hello, world.")
if __name__ == "__main__":
app.run(port=5000, debug=True)
Connecting with Firefox and with the following basic code:
let ws = new WebSocket("ws://127.0.0.1:5000/stream");
ws.onerror = (e) => {
console.log(e);
}
ws.onopen = () => {
console.log("connected");
ws.send("hello");
}
Expected Behavior
Steps to reproduce the issue:
- Go to http://127.0.0.1:5000/
- See the "Hello world message"
- Open the console and paste the above javascript
- An error is shown in the console: "Firefox can't establish a connection with the server at ws://127.0.0.1:5000/stream" (The message might differ as I have it in French and translated it)
- Refresh the page : The page hangs, Sanic doesn't answer any requests anymore
How do you run Sanic?
As a script (app.run
or Sanic.serve
)
Operating System
Linux
Sanic Version
Sanic 23.6.0; Routing 23.12.0
Additional context
From the MOTD:
- mode: debug, single worker
- server: sanic, HTTP/1.1
- platform: Linux-6.6.11-200.fc39.x86_64-x86_64-with-glibc 2.38