我需要使用像ws://localhost:8006/user?id=666
这样的网址从python客户端连接到龙卷风服务器。
我尝试过这样的事情:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect('ws://localhost:8006/user?id=666')
print s.recv(1024)
s.close
...并收到以下错误:
TypeError: getsockaddrarg: AF_INET address must be tuple, not str
由于
答案 0 :(得分:1)
您没有连接到具有namespace
和parameters
的远程套接字。您连接主机和端口。期。 Python的socket 模块是本机套接字的瘦包装器。它对http或ws等协议一无所知。
您可以连接到Web套接字使用的主机和端口。然后你可以发送你喜欢的任何参数......但除非你使用websocket protocol,否则它不会理解它们。
您最好的选择是使用其他人编写的websocket客户端(请参阅一些答案here)
如果你想自己写,here是一个很小的例子。
答案 1 :(得分:0)
您必须将字符串转换为元组。 Pratic示例:
x = "(1,2,3)"
t = tuple(int(v) for v in re.findall("[0-9]+", x))