[訊息論壇] ICE Messaging Forum
蕭崇威 / 郭漢丞
<實作篇> 在 Excel 上開發一個 iPush®
的即時訊息傳送 Client (下)
接續上一期的實作,我們繼續兩項在 Excel 上面的 iPush®
Client 開發。
在 iPush® V2 中,有兩個重要的新增特性,就是 Message Queue
和 Guaranteed Message Delivery。接下來我們打算利用四十分鐘左右的時間,來示範介紹這兩項功能的應用開發。
>> 下載
ActiveX API v2.3.1 與本 Excel 範例程式
| Point-to-Point
(Message Queue) 應用觀念 |
Message Queue (或簡稱 Queue) 的意義,對於單一訊息而言,就是 1-to-1 的觀念,也就是說單一訊息只會被一個的訊息訂閱者接收,而且只傳送一次
( Once- and- only- once)。
在實際的應用上,例如 CRM 系統當中的 Call Center,如果 Call Center 當中有 100
個人員席次 (Seats),面對傳送進來的訊息,無論哪一席客服人員都可以接受服務要求訊息,進行處理,那這個訊息就不需要被「多次消費」,只要進來的訊息有一席去處理即可。
對單一服務要求訊息來說,只會被分派給一位客服人員去處理,Message Queue 的運作觀念即是應用在這類的情境中。
在前一陣子艾揚電子報裡面提到防救災的即時訊息處理系統,也應用了 Queue 的概念,勤務指揮中心的報案受理台會讓進來的訊息立刻傳送到訊息訂閱接收端,但是特定的報案訊息只會傳送一次,發送的對象則依據系統內預先設定的邏輯,將案件迅速依據其特性加以處理。
| 實作 Point-to-Point
(Message Queue) 功能 (15分鐘) |
延續上一期次實作的內容,請大家先把上週您實作完成的 Excel 檔案找出來,並且確認 iPush®
Server 已經安裝完成。記得檢查一下您的 License Key 授權是否仍在有效期限內,如果 License
Key 已經過期,那即時訊息傳遞的動作將無法執行。
關於 iPush® Server License Key 的重新申請,請登入
ICE Developer Center 進行。
接下來請跟著下列步驟執行實作。
步驟一:在兩邊的 Clients 都加上 [Publish
via Queue] 按鈕,並將 Name 屬性訂為 btnQueue, btnQueue2。
 |
圖一、在左、右兩邊最下方各增加一個
[Publish via Queue] 按鈕 |
步驟二:雙擊按鈕,加入對應的程式碼。
|
圖二、為該二
[Publish via Queue] 按鈕加入程式碼 |
步驟三:我們可以另外開一個測試程式當作第二個接收端,右邊的
Client 當作第一個接收端,然後由左邊的 Client 利用 Queue 來發送訊息。結果會看到兩個接收端輪流收到資料
( iPush® Server 會用 Round-robin 的方式,來循環輪替分配資料給同一
Queue 的多個訂閱者)。
| Guaranteed Message
Delivery (訊息保證送達) 應用觀念 |
雖然網路建設日益發達,寬頻的普及率越來越高,PC 可以不休息,全天候接收各種訊息,但是人可就沒辦法了,總是得要有點「離線」時間。事實上,有些人還覺得離線時間越長,代表生活品質越高。(其實是我心裡想要離線一個星期,好好度個假啦!)
話題扯得遠了,回來。
「訊息保證送達」的機制,一方面是可讓使用者在離線的情況下,系統可以為其留存資訊;另一方面,是在網路上的客戶端電腦,也未必可以永遠正常工作,有時還是得關機或維護。
在這些使用者或電腦無法接收資訊的時候,Guaranteed Message Delivery 的特性就成為很有用的系統功能,這是
iPush® V2 新增的技術特色。
要應用 iPush® Server
V2 的訊息保證送達能力來實作系統,就切記訊息收送的黃金組合為:
Persistent
Message Publishing + Durable Subscription
接下來我們繼續按按部就班地為 Excel 範例加入 Guaranteed Message Delivery 功能。
| Guaranteed Message
Delivery 實作 (25 分鐘) |
步驟一:在左邊 Client 加上兩個按鈕:一個 [Send
Persistent] 按鈕,Name 屬性為 btnSendP;另外一個為 [Durable Sub] 按鈕,Name
屬性為 btnDSub。然後在下面加入標題欄位 Durable Name,輸入欄位為 (26,E)。
步驟二:在右邊 Client 加上兩個按鈕:一個 [Send
Persistent] 按鈕,Name 屬性為 btnSendP2;另外一個 [Durable Sub] 按鈕,Name
屬性為 btnDSub2。然後在下面加入標題欄位 Durable Name,輸入欄位為 (26,J)。步驟一、二完成的結果如下圖:
 |
|
圖三、在左、右兩邊下方分別增加
[Send Persistent] 與 [Durable Sub] 兩個按鈕 |
步驟三:為左、右兩邊的 [Send Persistent]
按鈕加入程式碼。Subject 名稱及所要送出的資料,是從輸入欄位取得。(左邊 Client 是從 (13,E)
(14,E)取得,右邊 Client 是從 (13,J) (14,J) 取得)
 |
圖四、為左、右兩邊的
[Send Persistent] 按鈕加入程式碼 |
步驟四:為左、右兩邊的 [Durable Sub]
按鈕加入程式碼。這邊要注意在 Durable Subscribe 時,要指定一個 Durable Name,所以我們從輸入欄位中取出這個值。
 |
圖五、為左、右兩邊的
[Durable Sub] 按鈕加入程式碼 |
步驟五:iPush®
接收 Durable 資料時,同樣是透過 SetSubjectData() 這個 Event 通知有 Durable
Subscribe 的資料進來,所以我們在這個 Event 裡面將收到的資料顯示在顯示欄位內。
 |
圖六、收到
Durable Subscription 訊息時,將訊息顯示出來的程式碼 |
步驟六:進行測試。先用右邊的 Client 對 lab3.test.receive
這個 Subject 作 Durable Subscription,Durable Name 訂為 keep,然後斷線。接著用左邊的
Client 對 lab3.test.receive 進行發送,送出三筆資料 one、two、three。之後再將右邊
Client 與 iPush® Server 連線,並對 lab3.test.receive
這個 Subject 作 Durable Subscription,Durable Name 還是為 keep。結果收到剛剛離線時,由左邊
Client 送出的資料,所以資料是保證送達的。
透過 iPush® 在 Excel 裡面執行即時訊息的接收與傳遞,這下子您可不能說
iPush® 與即時訊息傳遞離您太遠了!
既然 Excel 是您電腦桌面最常用的主要軟體之一,透過即時訊息的接收,您可以依據您的專業,推演出專屬特定 Domain
的應用。
最後來一個小小的廣告,本期實作的內容如果您還有不瞭解的地方,可以透過 Mr. Message 的電子信箱詢問。而艾揚也即將在三月份底舉辦「iPush
Server V2 Programming Workshop」,這兩期電子報的實作與進階,也將是課程的重點。
如果您希望掌握開發 iPush® 應用軟體的技術精髓,歡迎報名為 Developer
精心設計的基礎 (3/30) 與進階 (3/31) 的程式設計課程。
|