UNPKG

hqchart

Version:

HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接

110 lines (88 loc) 3.28 kB
/////////////////////////////////////////////////////////////// // Web socket 行情接收类 // function JSWSStockResource() { this.Domain = "wss://websocket-test.zealink.com"; //websocket 域名 } var g_JSWSStockResource = new JSWSStockResource(); function JSWSStock() { this.IsConnect=false; //是否连接 this.Url=g_JSWSStockResource.Domain+'/WebSocket/StockAll.ashx'; this.Socket; this.RecvSnapshotDataCallback; //快照数据到达 this.RecvDetailDataCallback; //分笔数据到达 this.RecvFlowDataCallback; //资金流数据到达 this.Total={Snapshot:0, Detail:0, Flow:0 } //统计一共接收到的数据条数 //option: { Callback: {Snapshot:, Detail:, Flow:}} this.SetOption=function(option) { if (!Option) return; if (option.Callback) { var callback=option.Callback; if (callback.Snapshot) this.RecvSnapshotDataCallback=callback.Snapshot; if (callback.Detail) this.RecvDetailDataCallback=callback.Detail; if (callback.Flow) this.RecvFlowDataCallback=callback.Flow; } } this.Create=function(option) { this.SetOption(option); this.Socket=new WebSocket(this.Url); if (!this.Socket) return false; console.log(`[JSWSStock::Create] connect=${this.Url}`); var self=this; this.Socket.onopen=function(e) { self.OnOpen(e); }; this.Socket.onmessage=function(e) { self.OnMessage(e)} ; this.Socket.onclose=function(e) { self.OnClose(e); } this.Socket.onerror=function(e) { self.OnError(e); } console.log(`[JSWSStock::Create] readyState=${this.Socket.readyState}`); return true; } this.Close=function() { if (this.Socket) this.Socket.close(); } this.OnMessage=function(e) { var message=JSON.parse(e.data); if (!message.data || !message.data.data) return; var data=message.data.data; if (data.length<=0) return; switch(message.id) { case 20: this.Total.Snapshot+=data.length; if (this.RecvSnapshotDataCallback) this.RecvSnapshotDataCallback(message.data); break; case 10: this.Total.Detail+=data.length; if (this.RecvDetailDataCallback) this.RecvDetailDataCallback(data); break; case 30: this.Total.Flow+=data.length; if (this.RecvFlowDataCallback) this.RecvFlowDataCallback(data); break; } } this.OnClose=function(e) { console.log('[JSWSStock::OnClose] e ', e); console.log(`[JSWSStock::OnClose] readyState=${this.Socket.readyState}`); } this.OnOpen=function(e) { console.log('[JSWSStock::OnOpen] e ', e); console.log(`[JSWSStock::OnOpen] readyState=${this.Socket.readyState}`); } this.OnError=function(e) { console.log('[JSWSStock::OnOpen] e ', e); } } JSWSStock.SetDomain = function (domain) { if (domain) g_JSWSStockResource.Domain = domain; }