Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connecting to socket.io: 400 Bad Request "unknown transport "undefined"" #19

Open
alexwohlbruck opened this issue Mar 6, 2022 · 1 comment

Comments

@alexwohlbruck
Copy link

I am trying to connect to my socket.io server, and Socket.io is returning a 400 error with the message unknown transport "undefined". It seems that the transport query param needs to be set. I tried setting it to websocket and polling but neither seem to get me anywhere. I don't know much about the connection protocol, but why might this be happening?

Server log:

listening on *:3000
  engine intercepting request for path "/socket.io/" +0ms
  engine handling "GET" http request "/socket.io/?EIO=3" +1ms
  engine unknown transport "undefined" +2ms

Micropython log:

b'GET %s HTTP/1.1' /socket.io/?EIO=3
b'Host: %s:%s' 192.168.86.31 3000
b''
Traceback (most recent call last):
  File "main.py", line 36, in <module>
  File "main.py", line 27, in main
  File "main.py", line 20, in hello
  File "usocketio/client.py", line 78, in connect
  File "usocketio/client.py", line 43, in _connect_http
AssertionError: b'HTTP/1.1 400 Bad Request'
MicroPython v1.18 on 2022-01-17; ESP32 module with ESP32
Type "help()" for more information.

My code, from example:

with usocketio.client.connect('http://192.168.86.31:3000') as socketio:
   @socketio.on('message')
   def on_message(self, message):
        print("message", message)

socketio.run_forever()
@alexwohlbruck
Copy link
Author

alexwohlbruck commented Mar 6, 2022

When I change query param to websocket

b'GET %s HTTP/1.1' /socket.io/?EIO=3&transport=websocket
b'Host: %s:%s' 192.168.86.31 3000
b''
Traceback (most recent call last):
  File "main.py", line 36, in <module>
  File "main.py", line 27, in main
  File "main.py", line 20, in hello
  File "usocketio/client.py", line 78, in connect
  File "usocketio/client.py", line 43, in _connect_http
AssertionError: b'HTTP/1.1 400 Bad Request'
MicroPython v1.18 on 2022-01-17; ESP32 module with ESP32
Type "help()" for more information.
  engine intercepting request for path "/socket.io/" +6m
  engine handling "GET" http request "/socket.io/?EIO=3&transport=websocket" +2ms
  engine handshaking client "Od-b3kZOLtvyo5zcAAAA" +5ms
  engine error handshaking to transport "websocket" +1ms

And when I change it to polling

b'GET %s HTTP/1.1' /socket.io/?EIO=3&transport=polling
b'Host: %s:%s' 192.168.86.31 3000
b''
Traceback (most recent call last):
  File "main.py", line 36, in <module>
  File "main.py", line 27, in main
  File "main.py", line 20, in hello
  File "usocketio/client.py", line 78, in connect
  File "usocketio/client.py", line 55, in _connect_http
AssertionError:
MicroPython v1.18 on 2022-01-17; ESP32 module with ESP32
Type "help()" for more information.
engine intercepting request for path "/socket.io/" +57s
  engine handling "GET" http request "/socket.io/?EIO=3&transport=polling" +1ms
  engine handshaking client "8ackU3rdUi6lEBhqAAAB" +2ms
  engine:socket sending packet "open" ({"sid":"8ackU3rdUi6lEBhqAAAB","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}) +0ms
  engine:polling setting request +0ms
  engine:socket flushing buffer to transport +2ms
  engine:polling writing "96:0{"sid":"8ackU3rdUi6lEBhqAAAB","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}" +2ms
  engine:socket executing batch send callback +4ms
  socket.io:server incoming connection with id 8ackU3rdUi6lEBhqAAAB +7m
  socket.io:client connecting to namespace / +0ms
  socket.io:namespace adding socket to nsp / +0ms
  socket.io:socket socket connected - writing packet +0ms
  socket.io:socket join room 8ackU3rdUi6lEBhqAAAB +0ms
  socket.io:client writing packet {"type":0,"nsp":"/"} +5ms
  socket.io-parser encoding packet {"type":0,"nsp":"/"} +0ms
  socket.io-parser encoded {"type":0,"nsp":"/"} as 0 +1ms
  engine:socket sending packet "message" (0) +9ms
A user connected

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant