下面我将代码附加到使用api的示例中。 如何将此代码从js转换为python?
const socketToken = '';
//Connect to socket
const data= io(`https://sockets.data.com?token=${socketToken}`);
data.on('event', (eventData) => {
if (!eventData.for && eventData.type === '') {
console.log(eventData.message);
}
if (eventData.for === 'test') {
switch(eventData.type) {
case '1':
console.log(eventData.message);
break;
case '2':
console.log(eventData.message);
break;
default:
console.log(eventData.message);
}
}.
答案 0 :(得分:1)
再阅读socket的Python文档。 (https://docs.python.org/2/library/socket.html)如果你看,它就在那里。 (但不要这样做!)
您显然正在尝试连接到HTTPS服务器。使用套接字级I / O执行此操作是(几乎)零回报的大量额外工作。您应该使用HTTP / HTTPS库(例如https://docs.python.org/2/library/httplib.html)。这将处理HTTP协议处理以及HTTPS需要进行的SSL / TLS协商。如果你正在尝试"做" WebSockets,也有库。
更新 - 我没有意识到你的目的是什么。虽然我坚持使用Python中的通用 HTTP / HTTPS工作的建议,但是" socketIO"库在这种情况下更适合;请参阅@ kichik的回答。
作为一般建议,如果您尝试使用现有协议或服务,首先应该查找该特定库的库或绑定。从头开始实施""应该是你的最后一招。
答案 1 :(得分:1)
看起来您正在尝试使用Python连接到Socket.io。有library for that。
使用以下方式安装:
pip install socketIO-client
然后使用类似的东西:
socketToken = '....'
from socketIO_client import SocketIO, LoggingNamespace
def on_connect():
print('connect')
def on_disconnect():
print('disconnect')
def on_reconnect():
print('reconnect')
def on_event(*args):
print('on_event', args)
socketIO = SocketIO('https://sockets.data.com?token=%s' % (socketToken,))
socketIO.on('connect', on_connect)
socketIO.on('disconnect', on_disconnect)
socketIO.on('reconnect', on_reconnect)
socketIO.on('event', on_event)
socketIO.wait()