这是什么?
我的意思是,一个网络组件在接受新连接后,先以文本协议等候消息,以实现支持telnet查看的功能。
telnet查看功能
- echo value。
网络组件收到消息后,像echo服务器那样直接返回value。value还可以是组件预置的变量,如$time返回服务器的当前时间。
- name value。
网络组件收到消息后,将当前连接绑定到value这个名字上,其目的是为下一条heartbeat指令提供操作对象。
- heartbeat value。
网络组件收到消息后,向value绑定的连接发起一个心跳检测,将回执通知telnet端。
这有什么用?
以往telnet在开发中的作用就是ping具体的服务器地址和端口,无法进一步使用。有时候想实时的从服务器中了解一些简单的连接信息,但是网络组件只处理专有的二进制消息,只能实现一个不通用的客户端。
若网络组件在接收二进制消息之前能够处理一些简单的文本协议,那么telnet就可进一步使用,查看组件状态甚至简单调试组件。
还有一种就是服务器程序监控服务,通常这种监控服务只能判断服务器程序是否运行或者挂掉,但是无法判断服务器是否遇上死锁而无法提供服务。当网络组件支持这种文本协议之后,监控服务就能够通过echo和heartbeat两种消息检测网络组件listen方和connect方是否卡死。
内置一个http服务器不是更好?
其实在网络组件中内置一个http服务器不是更好,可以通过wget,curl甚至浏览器进行操作,可视化程度也比较高。
我不这么认为。其实内置一个http服务器有点大了,搞不好比组件本身还大。再者http服务是和业务连接共用一个端口呢还是拥有独立的服务端口,独立的服务端口增加了太多的配置,共用端口的话从HTTP协议变迁到二进制协议是不是太麻烦了点。
posted on 2011-06-12 22:44
LOGOS 阅读(2330)
评论(5) 编辑 收藏 引用