# ZMQService 登入、連線

## 建立 ZMQ 系統架構

![](https://2250938162-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MdLvaXzNWPpG7EFGXGY%2F-Mg4oerO_ElE8G83Ebl7%2F-Mg57w-0yBAKSgcLaEjn%2Fimage.png?alt=media\&token=0fb9f9b9-63b0-40e5-9818-7979709c8798)

```
g_TradeZMQ = TradeAPI("ZMQ","8076c9867a372d2a9a814ae710c256e2")
g_QuoteZMQ = QuoteAPI("ZMQ","8076c9867a372d2a9a814ae710c256e2")
帶入登入參數
```

```
q_data = g_QuoteZMQ.quote_Connect("XXXXX")
XXXXX→連接埠數據
登入報價連線，可從QuoteZMQService的log中抓取到
路徑：C:\TAIFEXTC\APPs\TCoreRelease\Logs
```

![在log中搜尋RepPort可以找到](https://2250938162-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MdLvaXzNWPpG7EFGXGY%2F-Mg4dbvITS4VdUF0AU9t%2F-Mg4fc6J8T_-6oM1BVDd%2Fimage%20\(1\).png?alt=media\&token=5d618c07-f6db-44ec-a07b-8d8ad8e2ae5f)

```
t_data = g_TradeZMQ.trade_Connect("XXXXX")
XXXXX→連接埠數據
登入交易連線，可從TradeZMQService的log中抓取到
路徑：C:\TAIFEXTC\APPs\TCoreRelease\Logs
```

![在log中搜尋RepPort可以找到](https://2250938162-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MdLvaXzNWPpG7EFGXGY%2F-Mg4dbvITS4VdUF0AU9t%2F-Mg4fqUdSyUx7mPlz0Cb%2Fimage%20\(2\).png?alt=media\&token=6c9d16a2-4a72-4940-b10c-5f477c7b0a9b)

![](https://2250938162-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MdLvaXzNWPpG7EFGXGY%2F-Mg4oerO_ElE8G83Ebl7%2F-Mg59qbaF8yvmqKZh8T4%2Fimage.png?alt=media\&token=c62abb04-e132-4982-9a4b-72eb46fe3f95)

## 啟動 ZMQ 主推連線

t\_data 、q\_data 登入成功後會回傳對應的值\
後續指令都要用 SessionKey 認證

```
t1 = threading.Thread(target = trade_sub_th,args=(g_TradeZMQ,t_data["SubPort"],))
建立交易主推子線程
TradeThread.start()
啟動交易主推子線程
```

```
t2 = threading.Thread(target = quote_sub_th,args=(g_QuoteZMQ,q_data["SubPort"],))
建立行情主推子線程
QuoteThread.start()
啟動行情主推子線程
```

## 維持主推連線的PING與PONG

連線成功後，系統每隔約20秒會發送PING訊號確認使用者連線狀態\
需每60秒至少進行回復一次(啟動連線時，計算為第一次回應)

![系統發出確認訊號](https://2250938162-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MdLvaXzNWPpG7EFGXGY%2F-Mg4dbvITS4VdUF0AU9t%2F-Mg4gPwI1SY77h_YWwhk%2Fimage%20\(4\).png?alt=media\&token=ff9a0835-c671-4734-959e-c270cc3416b1)

```
QuotePongCheck = g_QuoteZMQ.Pong(QuoteKey)
回應報價伺服器的ping功能
```

```
TradePongCheck = g_TradeZMQ.Pong(TradeKey)
回應交易伺服器的ping功能
```

![](https://2250938162-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MdLvaXzNWPpG7EFGXGY%2F-Mg5Ap4SNLNrKXV-lnxh%2F-Mg5CmmZRQ80CdlenLVS%2Fimage.png?alt=media\&token=9ad19014-bcd4-462c-b2b1-817cd9fc19eb)

![](https://2250938162-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MdLvaXzNWPpG7EFGXGY%2F-Mg5Ap4SNLNrKXV-lnxh%2F-Mg5CaQnST_UXONH0Mkb%2Fimage.png?alt=media\&token=14f0eff7-ee7d-41ee-b96e-ea43d26c347f)
