第一种, 使用create_connection链接,需要pip install websocket-client (此方法不建议使用,链接不稳定,容易断,并且连接很耗时)
import time from websocket import create_connection url = 'wss://i.cg.net/wi/ws' while True: # 一直链接,直到连接上就退出循环 time.sleep(2) try: ws = create_connection(url) print(ws) break except Exception as e: print('连接异常:', e) continue while True: # 连接上,退出第一个循环之后,此循环用于一直获取数据 ws.send('{"event":"subscribe", "channel":"btc_usdt.ticker"}') response = ws.recv() print(response)
第二种,运行效果很不错,很容易连接,获取数据的速度也挺快
import json from ws4py.client.threadedclient import WebSocketClient class CG_Client(WebSocketClient): def opened(self): req = '{"event":"subscribe", "channel":"eth_usdt.deep"}' self.send(req) def closed(self, code, reason=None): print("Closed down:", code, reason) def received_message(self, resp): resp = json.loads(str(resp)) data = resp['data'] if type(data) is html" target="_blank">dict: ask = data['asks'][0] print('Ask:', ask) bid = data['bids'][0] print('Bid:', bid) if __name__ == '__main__': ws = None try: ws = CG_Client('wss://i.cg.net/wi/ws') ws.connect() ws.run_forever() except KeyboardInterrupt: ws.close()
第三种,其实和第一种差不多,只不过换种写法而已,运行效果不理想,连接耗时,并且容易断
import websocket while True: ws = websocket.WebSocket() try: ws.connect("wss://i.cg.net/wi/ws") print(ws) break except Exception as e: print('异常:', e) continue print('OK') while True: req = '{"event":"subscribe", "channel":"btc_usdt.deep"}' ws.send(req) resp = ws.recv() print(resp)
第四种,运行效果也可以,run_forever里面有许多参数,需要自己设置
import websocket def on_message(ws, message): # 服务器有数据更新时,主动推送过来的数据 print(message) def on_error(ws, error): # 程序报错时,就会触发on_error事件 print(error) def on_close(ws): print("Connection closed ……") def on_open(ws): # 连接到服务器之后就会触发on_open事件,这里用于send数据 req = '{"event":"subscribe", "channel":"btc_usdt.deep"}' print(req) ws.send(req) if __name__ == "__main__": websocket.enableTrace(True) ws = websocket.WebSocketApp("wss://i.cg.net/wi/ws", on_message=on_message, on_error=on_error, on_close=on_close) ws.on_open = on_open ws.run_forever(ping_timeout=30)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍详解Spring连接数据库的几种常用的方式,包括了详解Spring连接数据库的几种常用的方式的使用技巧和注意事项,需要的朋友参考一下 本文简单的讲解使用Spring连接数据库的几种常用方法: 测试主类为: 第一种:使用spring自带的DriverManagerDataSource 配置文件如下: 第二种:C3P0数据源。 需要使c3p0的核心jar包,我使用的是c3p0-0.
本文向大家介绍详解Mysql导出数据的几种方式,包括了详解Mysql导出数据的几种方式的使用技巧和注意事项,需要的朋友参考一下 MySQL导出数据的目的有很多种,如数据库备份、表结构导出、表数据导出、分析数据采取等。 Part1 select into outfile 先说最短小精悍的select into outfile, 这是小型数据库分析数据最常用的采集数据方式,具体语法如下: 【selec
本文向大家介绍详解Nginx几种常见实现301重定向方法上的区别,包括了详解Nginx几种常见实现301重定向方法上的区别的使用技巧和注意事项,需要的朋友参考一下 Nginx下常见的301跳转有以下三种,虽然都能达到同样的目的。但是三种写法上还是有区别的,主要的区别是在正则匹配的性能上。 第一种:使用rewrite指令,通过正则匹配所有的URI后再去掉开头第一个/(反斜线)。 第二种:同样使用re
本文向大家介绍详解javascript获取url信息的常见方法,包括了详解javascript获取url信息的常见方法的使用技巧和注意事项,需要的朋友参考一下 先以“http://www.cnblogs.com/wuxibolgs329/p/6188619.html#flag?test=12345”为例,然后获得它的各个组成部分。 1、获取页面完整的url 2、获取页面的域名 3、获取url协议
本文向大家介绍c# 几种常见的加密方法的实现,包括了c# 几种常见的加密方法的实现的使用技巧和注意事项,需要的朋友参考一下 1.ACSII码加密 2.MD5加密 3.RSA加密 4.DES加密 以上就是c# 几种常见的加密方法的实现的详细内容,更多关于c# 加密的资料请关注呐喊教程其它相关文章!
本文向大家介绍用 Python 连接 MySQL 的几种方式详解,包括了用 Python 连接 MySQL 的几种方式详解的使用技巧和注意事项,需要的朋友参考一下 尽管很多 NoSQL 数据库近几年大放异彩,但是像 MySQL 这样的关系型数据库依然是互联网的主流数据库之一,每个学 Python 的都有必要学好一门数据库,不管你是做数据分析,还是网络爬虫,Web 开发、亦或是机器学习,你都离不开要