[訊息論壇] ICE Messaging Forum
蕭崇威 / 郭漢丞
<實作篇>> 在 Excel 上開發一個
iPush® 的即時訊息傳送 Client (上)
提到即時訊息技術應用,編輯小組不時接到類似的反應:像 iPush®
這樣的即時訊息伺服器好像與我距離很遠,大概得要像金融即時報價,或者企業應用那些講究速度的應用才需要,我平常使用的軟體大概不出
Microsoft Office 的範圍,所以 iPush® 大概用不著。
事情往往不能從表面上來看,iPush® 主要是提供即時訊息的服務,所以 iPush®
很像是網際網路上的訊息高速公路,提供各種訊息即時流通,既然是「即時訊息高速公路」,那麼訊息傳遞的內容當然沒有限制,誰來傳送?誰來接收?其實都要看使用者想要怎麼用來決定,結合個人在專業上的
Know-How,您將可以創造出更有生產力的即時應用情境。好,您不是說桌面上常使用的應用軟體只有
MS Office 嗎?沒問題,我們就用 Excel 來傳送與接收即時訊息吧!
自己執行在 Excel 上面發 iPush®
的即時訊息傳送/接收 Client 需要多少時間?我們自己試驗過的時間大約 30 + 20,也就是 50 分鐘。在我們進行實作說明以前,請先確認您具備以下條件,然後再一步步實作下去:
條件不難吧?如果您沒有 iPush® 以及 ActiveX API,不妨直接點選以上連結下載最新版本。
檢查完電腦系統的需求之後,還有一項準備工作,請在 iPush® 裡面新增以下的
Service 與 User 帳號:
訊息接收者:
- Group:lab
- Product:lab3
- User ID:excel_receiver
- Password:excel_receiver
- Read Permission:lab3.test.receive
- Write Permission:-
訊息傳送者:
- Group:lab
- Product:lab3
- User ID:excel_sender
- Password:excel_sender
- Read Permission:-
- Write Permission:lab3.test.receive
您可以開啟兩個 ActiveXSubjectSample 測試程式,一個作為訊息傳送者,另一個作為訊息接收者,測試兩者是否可以正常送收訊息。
本次實作我們打算先用 30 分鐘在 Excel 裡面以 iPush® 實作即時訊息的「收送」程式,然後以
20 分鐘實作基本收發訊息功能當您把上述的基本條件準備好之後,就可以進入正式的實作。在下週的電子報當中,我們還會加入
Point-to-Point 功能 (Queue) 與 Guaranteed Message Delivery
的實作。
步驟一:註冊 iPush®
ActiveX API (xiPush2.ocx),在 Windows 系統的 [執行] 中輸入
regsvr32 <API 路徑>\xiPush2.ocx
步驟二:執行 Microsoft Excel,開新檔案
步驟三:將 Excel 切換至設計模式
步驟四:製作表單
1. 在表單中加入 iPush® 控制元件,控制項 Name 為 XiPush21
|
圖一、在 "控制工具箱"
的 "其他控制項" 裡找到 XiPush2 控制項 |
|
圖二、XiPush2
控制項貼上工作表 |
2. 加入連線 iPush® 所需的各項資訊。我們指定標題欄位 (2,C)~(7,C),名稱為
IP, Port, Company,
Product, Username, Password,並以欄位
(2,D)~(7,D) 做為使用者輸入欄位。程式會從輸入欄位取得相關的參數。
3. 加入 2 個 Command Button 如上:
- “Connect” 按鈕,Name 屬性為 btnConnect
- “Disconnect” 按鈕 ,Name 屬性為
btnDisconnect
- 使用區域 Cell (2,D) ~ Cell(7,D)
作為 iPush® 連線資訊輸入欄位
- 使用 Cell(11,C) 作為 iPush®
Server 命令訊息回應區
步驟五:撰寫程式
雙擊 Connect 按鈕,加入程式碼:
1. 與 iPush® Server 連線,並在訊息回應區顯示連線成功的訊息。
iPush® 連線之前,需要先設定好各參數值。參數值是從我們剛剛的輸入欄位取得。
2. 判斷是否連線成功。輸入連線資訊,按下 Connect 按鈕測試。可以看到連線成功。
3. 實作與 iPush® 斷線的功能。雙擊 Disconnect 按鈕加入程式碼。並在收到斷線的
Event 之後在訊息回應區顯示斷線訊息。
4. 測試成果。回到表單執行模式按下 Disconnect 按鈕,會中斷與 iPush®
的連線。
步驟六:仿照前面的步驟,在表單的右邊設計一個和剛剛一模一樣的測試
client,以便進行之後兩端收送的相關測試。
1. 加入 2 個 Command Button 如右下:
- “Connect” 按鈕,Name 屬性為 btnConnect2
- “Disconnect” 按鈕 ,Name 屬性為
btnDisconnect2
2. 使用區域 Cell (2,I) ~ Cell(7,I) 作為 iPush®
連線資訊輸入欄位
3. 使用 Cell(11,H) 作為 iPush® Server 命令訊息回應區
程式碼可以依照剛剛的內容作相對應的輸入。
接下來我們將繼續把收、發功能完整實作起來,步驟請依序執行。
步驟一:我們將左邊的 client 設定為訊息發送端,右邊的
client 設定為訊息接收端,測試訊息的收送功能。
1. 在左邊的 client 新增兩個欄位標題為 "Subject" 和 "Data
to Send",並以儲存格 ( 13,E)、(14,E)
做為輸入欄位。然後加入一個 Publish 按鈕,其 Name 屬性為 "btnPublish"。
2. 在右邊的 client 新增三個欄位標題為 "Subject","Data
Received","From Subject",並以儲存格
(13,J) 做為輸入欄位,(18,J) (19,J) 做為顯示欄位。然後加入一個 Subscribe 按鈕,其
Name 屬性為 "btnSubscribe2"。
3. 前面完成的結果如下圖。
步驟二:為左邊的 Publish 按鈕及右邊的 Subscribe
按鈕加入程式碼。
|
圖十一、Publish
與 Subscribe 處理程式碼 |
步驟三:右邊的接收端會從 Event 接收到 iPush®
傳來的資料。收到 Event 之後,將資料顯示在剛剛定義的顯示欄位中。
步驟四:回到表單執行模式,將兩個 client 與
iPush® 連線成功之後,先在右邊的 client 要訂閱的 Subject 輸入
"lab3.test.receive",然後按 Subscribe 按鈕訂閱。接著在左邊 client
輸入 Subject 為 "lab3.test.receive",Data to Send
為 "Hello!",然後按下 Publish 按鈕。馬上我們會在右邊 client 的顯示欄位看到收到來自
"lab3.test.receive" 這個 Subject 傳來的資料 "Hello!"。
步驟五:我們將兩邊的收送功能加以完成。也就是兩端都可以發送及接收資料。請依照下圖加入所需的標題欄位。另外在左邊的
client 加入 Subscribe 按鈕,Name 屬性為 "btnSubscribe",右邊
client 加入 Publish 按鈕,Name 屬性為 "btnPublish2"。
步驟六:完成兩端的程式碼。在收到 iPush®
的 Event 之後,將資料顯示在剛剛定義的顯示欄位中。(左邊 client 的顯示欄位是 (18,E) (19,E),右邊
client 的顯示欄位是 (18,J) (19,J))
| 下期繼續 Point-to-Point
(Queue) 與 Guaranteed Message Delivery |
好的,本次我們的實作到這邊暫時打住,在合計大約 50 分鐘的實作當中,我們已經在 Excel 裡面透過 iPush®
建立了即時訊息的收發功能,在下週的實作篇當中,我們將繼續把按鈕與程式碼建構完整,並且介紹 Point-to-Point
(Queue) 與 Guaranteed Message Delivery 功能,敬請期待下週的技術實作。 |