使用R语言websocket包连接socket.io失败,求助排查
Winamax WebSocket连接失败问题排查提示
修正URL参数位置:Socket.IO的
EIO、transport这类参数属于URL查询参数,不是请求头字段。你需要把这些参数移到URL中,正确的WebSocket URL格式应为:websocket_url <- "wss://sports-eu-west-3.winamax.fr/uof-sports-server/socket.io/?EIO=3&transport=websocket"Sid参数需动态获取:
sid是Socket.IO握手后生成的临时会话ID,固定值无效。必须先完成HTTP握手步骤:- 发送GET请求到轮询地址:
https://sports-eu-west-3.winamax.fr/uof-sports-server/socket.io/?EIO=3&transport=polling - 从响应内容中提取有效的
sid值 - 将
sid作为查询参数拼接到WebSocket URL中,格式为wss://xxx/?EIO=3&transport=websocket&sid=你的有效sid
- 发送GET请求到轮询地址:
补充必要请求头:浏览器发起WebSocket连接时会携带
Origin、Cookie、User-Agent等关键头信息,这些是服务器验证的必要项。从浏览器网络面板中复制完整的请求头,替换你当前的header_socket,例如:header_socket <- list( `User-Agent` = "你的浏览器UA", Origin = "https://www.winamax.fr", Cookie = "从浏览器复制的Cookie内容", language = "FR", version = "3.0.5", embed = "false" )考虑Socket.IO协议适配:你使用的
websocket包是基础WebSocket客户端,而Winamax采用Socket.IO框架,该框架在基础WebSocket之上有自定义协议(如消息封装格式)。建议尝试使用专门的Socket.IO R客户端(如socketio包),或参考Socket.IO官方文档处理协议层的消息交互。
内容的提问来源于stack exchange,提问作者M.O
相关产品推荐
相关产品推荐

