Problem:
You want to use Python to connect to your WebSocket server:
import websocket ws = websocket.WebSocket() ws.connect("http://192.168.1.211/ws")
But you see an error message like
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-2-5108525d0b43> in <module> 1 import websocket 2 ws = websocket.WebSocket() ----> 3 ws.connect("http://10.228.152.103/ws") 4 while True: 5 result = ws.recv() c:\python38\lib\site-packages\websocket\_core.py in connect(self, url, **options) 220 # FIXME: "header", "cookie", "origin" and "host" too 221 self.sock_opt.timeout = options.get('timeout', self.sock_opt.timeout) --> 222 self.sock, addrs = connect(url, self.sock_opt, proxy_info(**options), 223 options.pop('socket', None)) 224 c:\python38\lib\site-packages\websocket\_http.py in connect(url, options, proxy, socket) 106 return _open_proxied_socket(url, options, proxy) 107 --> 108 hostname, port, resource, is_secure = parse_url(url) 109 110 if socket: c:\python38\lib\site-packages\websocket\_url.py in parse_url(url) 61 port = 443 62 else: ---> 63 raise ValueError("scheme %s is invalid" % scheme) 64 65 if parsed.path: ValueError: scheme http is invalid
Solution:
The websocket-client
library wants you to use ws://host/path
instead of http://host/path
. So instead of
ws.connect("http://10.228.152.103/ws")
use
ws.connect("http://10.228.152.103/ws")