在QuickServer针对通讯的方式的不同可以采用很多形式,但是必须考虑各种交互方式的不同和优缺点:
QuickServer划分其对八类主要开发应用程序逻辑,
服务端和客户端的交互的各种方式如下:
- ClientEventHandler [Optional Class] ClientEventHandler [可选类]
Handles client events.处理客户端事件。 - ClientCommandHandler [#] ClientCommandHandler [#]
Handles client interaction - Character/String commands.处理客户端的双向互动 - 字符/字符串命令。 - ClientBinaryHandler [#] ClientBinaryHandler [#]
Handles client interaction - Binary data.处理客户端的互动 - 二进制数据。 - ClientObjectHandler [#] ClientObjectHandler [#]
Handles client interaction - Java Object commands.处理客户端的双向互动 - Java对象的命令。 - ClientWriteHandler [Optional Class] ClientWriteHandler [可选类]
Handles client write operation - Non-Blocking Mode.处理客户端写操作 - 非阻塞模式。 - ClientAuthenticationHandler [Optional Class] ClientAuthenticationHandler [可选类]
Used to Authenticate a client.用于验证客户端。 - ClientData [Optional Class] ClientData [可选类]
Client data carrier (support class)客户数据载体(支持类) - ClientExtendedEventHandler [Optional Class] ClientExtendedEventHandler [可选类]
Handles extended client events.把手扩展客户端事件。
[#] = Any one of these have to be set based on default DataMode for input.
[#] =其中任何一个都必须设置默认输入DataMode基础上的。
The default DataMode for input is String so if not changes you will have to set ClientCommandHandler.
对于输入的默认DataMode是String,所以如果不改变你将需要设置ClientCommandHandler。
如果服务端和客户端采用java方式那么采用ClientObjectHandler比较好。
采用非相同的语言那么最好采用ClientCommandHandler或者ClientBinaryHandler对象实现两种的交互比较好。
Mina和QuickServer的优缺点:看来自TrusinLee的评论:
Thank for the information about another network application framework. I found a few differences:
Ø QuickServer supports blocking mode. (MINA supports only non-blocking mode, but you can make your operation block at your will.)
Ø QuickServer provides GUI-based admin. (MINA doesn't have one yet, but will have full JMX support soon, which is a standard.)
Ø QuickServer uses java.util.logging. (MINA uses SLF4J, which is a safe replacement of commons-logging.)
Ø QuickServer uses its own XML settings. (MINA provides Spring framework integration instead.)
Ø QuickServer can specify maximum number of clients allowed. (MINA can do this using a filter, but not implemented by default. Of course, this will be implemented as an overload prevention filter.)
Ø QuickServer team has one crew. (MINA has three crews.)
Ø QuickServer project started in 2003. (MINA started in 2005.)
Ø QuickServer has a difference event handler interface from MINA. (You'll have to compare it by yourself. IMHO, MINA has one simple enough handler which covers all QuickServer provides.)
Ø QuickServer doesn't support UDP at all. (MINA does)
Ø QuickServer doesn't support client-side API at all. (MINA does)
Ø QuickServer integrated authentication and text protocol in its core. (MINA didn't and they are considered as a cross-cutting concern that a filter should take care of. IMHO, MINA is more extensible here.)