我一直在尝试使用Python连接到skinport
WebSocket。套接字文档位于此链接的底部。我正在使用websocket-client
模块进行连接,但连接过早关闭。下面是迄今为止的代码。
import websocket
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_close(ws, b, c):
print("Connection closed")
def on_open(ws):
print("Connection opened")
ws.send("Hello, Server!")
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("wss://skinport.com/saleFeed?app_id=730¤cy=EUR",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
我在控制台上获得以下跟踪/消息
--- request header --- GET /saleFeed?app_id=730¤cy=EUR HTTP/1。1升级:WebSocket主机: www.example.com :G9 bSTZyU 7 TP 2SQIOZgbgg == Sec-WebSocket-版本:13连接:升级
---响应头--- HTTP/1。1 200 OK日期:Mon,10 Apr 2023 11:16:12 GMT Content-Type:text/html; charset=utf-8传输编码:分块连接:keep-alive CF-Ray:7b5a9387bebd6bfd-SIN Cache-Control:no-cache,no-store,must-revalidate,max-age=0严格运输安全:max-age=31536000;includeSubDomains;预加载通过:1.1 vegur CF-Cache-Status:动态内容安全策略:script-src 'self' 'unsafe-eval' 'unsafe-inline' https://platform.twitter.comhttps://syndication.twitter.comhttps://www.googletagmanager.comhttps://cdn.syndication.twimg.comhttps://www.google.comhttps://www.google-analytics.comhttps://maps.googleapis.comhttps://apis.google.comhttps://connect.facebook.nethttps://challenges.cloudflare.comhttps://static.cloudflareinsights.comwww.example www.example.com ;report-uri https://o298045.ingest.sentry.io/api/5193335/security/?sentry_key=98577efcbca24e6daef4a099b6611076 Expect-Ct:max-age=0源座席群集:?1 Pragma:no-cache Referrer-Policy:strict-origin-when-cross-origin X-Content-Type-Options:nosniff X-Dns-Prefetch-Control:关闭X-Download-Options:未打开X框架-选项:SAMEORIGIN X-Permitted-Cross-Domain-Policies:无X-Xss-保护:0设置Cookie:__cf_bm=kin41Kk7yGk9NxwTBggN4_Ga4scFC2391h_Ggv5rVeQ-1681125372-0-Ae23hoR65z9NdcPVYOlSk2y5PTPe9WtzqBTlWG1NvjVHoD5bac7WaPISitKfUEnLizFf45QQFxKbMurf47/I/rs=;路径=/;过期=星期一,4月23日11:46:12 GMT;domain= www.example.com ; HttpOnly; Secure Server:cloudflare --------------------握手状态200 OK -再见握手状态200 OK连接关闭
我不明白为什么没有交换消息就关闭了连接。on_message
函数在此过程中不会被调用。
1条答案
按热度按时间guz6ccqo1#
WebSocket连接端点为
wss://skinport.com/socket.io/?EIO=4&transport=websocket
您还需要确保在连接后发送消息
40
。根据我的经验,如果你给予服务器任何意外的消息(包括on_open
回调中的Hello Server!
消息),服务器会关闭连接,所以只要确保模仿你在浏览器的开发工具中看到的东西。下面是订阅列表提要的工作示例: