這是什么?
我的意思是,一個網(wǎng)絡(luò)組件在接受新連接后,先以文本協(xié)議等候消息,以實現(xiàn)支持telnet查看的功能。
telnet查看功能
- echo value。
網(wǎng)絡(luò)組件收到消息后,像echo服務(wù)器那樣直接返回value。value還可以是組件預(yù)置的變量,如$time返回服務(wù)器的當(dāng)前時間。
- name value。
網(wǎng)絡(luò)組件收到消息后,將當(dāng)前連接綁定到value這個名字上,其目的是為下一條heartbeat指令提供操作對象。
- heartbeat value。
網(wǎng)絡(luò)組件收到消息后,向value綁定的連接發(fā)起一個心跳檢測,將回執(zhí)通知telnet端。
這有什么用?
以往telnet在開發(fā)中的作用就是ping具體的服務(wù)器地址和端口,無法進(jìn)一步使用。有時候想實時的從服務(wù)器中了解一些簡單的連接信息,但是網(wǎng)絡(luò)組件只處理專有的二進(jìn)制消息,只能實現(xiàn)一個不通用的客戶端。
若網(wǎng)絡(luò)組件在接收二進(jìn)制消息之前能夠處理一些簡單的文本協(xié)議,那么telnet就可進(jìn)一步使用,查看組件狀態(tài)甚至簡單調(diào)試組件。
還有一種就是服務(wù)器程序監(jiān)控服務(wù),通常這種監(jiān)控服務(wù)只能判斷服務(wù)器程序是否運行或者掛掉,但是無法判斷服務(wù)器是否遇上死鎖而無法提供服務(wù)。當(dāng)網(wǎng)絡(luò)組件支持這種文本協(xié)議之后,監(jiān)控服務(wù)就能夠通過echo和heartbeat兩種消息檢測網(wǎng)絡(luò)組件listen方和connect方是否卡死。
內(nèi)置一個http服務(wù)器不是更好?
其實在網(wǎng)絡(luò)組件中內(nèi)置一個http服務(wù)器不是更好,可以通過wget,curl甚至瀏覽器進(jìn)行操作,可視化程度也比較高。
我不這么認(rèn)為。其實內(nèi)置一個http服務(wù)器有點大了,搞不好比組件本身還大。再者h(yuǎn)ttp服務(wù)是和業(yè)務(wù)連接共用一個端口呢還是擁有獨立的服務(wù)端口,獨立的服務(wù)端口增加了太多的配置,共用端口的話從HTTP協(xié)議變遷到二進(jìn)制協(xié)議是不是太麻煩了點。
posted on 2011-06-12 22:44
LOGOS 閱讀(2383)
評論(5) 編輯 收藏 引用