當我們成功登入後,直覺反應是:「總算可以開始下單了吧?」
先別急,事情沒有這麼簡單。如果我們回想一下平時使用看盤軟體的流程,會發現許多繁瑣的步驟都被軟體自動化了,導致我們常常忽略它們的存在。
讓我們來拆解一下登入後到下單前的完整流程:
從這個流程可以清楚地看到,在程式的世界裡,我們不能跳過這些步驟。將其轉換為程式需要執行的任務順序,大概會是這樣:
了解了這層關係後,才發現原來要寫個程式來當「韭菜」還真不容易啊!我們的第二步,顯然就是連線報價伺服器。
與登入的流程相似,連線報價伺服器也需要「發送請求」與「監聽回報」兩個部分。
首先,我們呼叫 API 來與報價主機建立連線。這個動作有點像是跟主機說:「我要訂閱你了,準備開始跟你要資料囉!」
def buttonSKQuoteLib_EnterMonitorLONG_Click(self):
"""
處理按鈕點擊事件,發送「連線報價伺服器」的請求
"""
# 呼叫 API 以非同步方式連線到報價伺服器
nCode = m_pSKQuote.SKQuoteLib_EnterMonitorLONG()
# 取得 API 回傳碼的對應訊息
msg = f"【SKQuoteLib_EnterMonitorLONG】{m_pSKCenter.SKCenterLib_GetReturnCodeMessage(nCode)}"
print(msg)
發送請求後,我們需要一個對應的 Event 函式來接收伺服器的回報,告訴我們連線是否成功。查閱 API 文件可以發現,對應的 Event 是 OnConnection
。
接著,我們來實作這個函式:
def OnConnection(self, nKind, nCode):
"""
當連線狀態改變時,此事件會被觸發
nKind=0 Connected, nKind=1 Disconnected, nKind=2 Reconnected
"""
# 組合並顯示連線狀態訊息
msg = f"【OnConnection】Kind: {nKind}, Code: {nCode}"
print(msg)