在這篇文章中,我們將學習如何利用websocket開發乙個可以實時接收並顯示位元幣/bitcoin****的swift應用。
先看一下我們最終的成果:
借助於urlsessionwebsockettask
,用urlsession建立websocket變得非常簡單了。下面說明乙個websocket連線的5個核心操作。
第1個,開啟連線:
let urlsession = urlsession(configuration: .default)
let websockettask = urlsession.websockettask(with: "wss:")
websockettask.resume()
第2個,傳送字串或資料
websockettask.send(.string("hello"))
第3個,接收響應結果訊息
websockettask.receive
第4個,斷開連線
websockettask.cancel(with: .goingaway, reason: nil)
第5個,我們可以利用ping/pong機制來保證連線保持啟用:
priceresult
需要從observableobject
類發布 —— 可以在下面的websocketservice.swift
中看到:
class websocketservice : observableobject
}init()
}
在上面的**中,我們定義了一些屬性並在init
方法中建立了訂閱。你需要使用自己的api key來替換xyz
。
用於publisher
上的操作符非常重要。我們使用了debounce
來降低實時更新的頻率,還使用了removeduplicates
來剔除重複的值。
要手動將變化傳送到swiftui檢視,當priceresult
屬性被更新時可以觸發didchange.send()
方法。
構造websocket urlsession的websocketservice
類的其他**如下:
class websocketservice : observableobject
func stop()
private func sendmessage()
"let message = urlsessionwebsockettask.message.string(string)
websockettask?.send(message) }}
private func receivemessage()
} catch
self?.receivemessage()
default:
print("default")}}
}}
下面的結構模型用來解碼api的響應結果:
struct apiresponse: codable
}struct pricedata: codable
}
現在使用watchos**器執行應用,看起來是這樣:
位元幣今日行情如何?怎麼進行位元幣交易?
自上週 迎來單邊拉公升後,細心的朋程式設計客棧友可以發現這一輪拉公升伴隨的量能釋放並不及預期,這和近期defi死灰復燃 專案更新迭代脫不了關係,市場大部分穩定資產都去參與流動性挖礦,導致市場流動性資金縮水。每一次大餅的拉公升給人的第一感覺就是後續量能不足,這也是提醒各位朋友現貨布局不必要太過著急的原...
位元幣行情如何? 如何選擇位元幣交易平台?
隨著位元幣突破萬元大關,很多人開始關注位元幣,慢慢的位元幣走進大家的視野。之前有人問我位元幣還會漲www.cppcns.com嗎?位元幣是不是剛開始就很貴?如何購買位元幣?小編帶大家了解一下。位元幣 bitcoin 的概念最初由中本聰在2008年11月1日提出,並於2009年1月3日正式誕生。根據中...
3 17最新位元幣 以太坊 柚子等行情資訊
美國國家經濟顧問 第二季度經濟將面臨極度困難 美國國家經濟顧問庫德洛表示,美國已經準備好採取一切措施。美國第二季度經濟將面臨極度困難,但拒絕稱之為衰退。庫德洛稱,超過8000億美元的財政措施,包括可能的薪資稅減免,或將到位,以幫助美國經濟。金十 美股三大股指再次擴大跌幅美股三大股指再次擴大跌幅,道指...