Using SSL with Non-Blocking IO, O'Reilly on Java.com
Client或Server向SelectorThread註冊,由SelectorThread統一派送事件。
當事件發生時,SelectorThread會呼叫Client或Server提供的Listener。
Connector使用一般的SocketChannel連線。
PacketChannel透過Channel類別,
以SSL演算法加密或解密從SocketChannel寫入或讀出的資料。
可以將SocketChannel想成網路層,PacketChannel則介於應用程式與SocketChannel之間。
SSLChannel 是Channel的子類別,可以餵給PacketChannel。
PacketChannel實做了ChannelListener。
當socketChannel寫出或讀入資料時,
PacketChannel中的SSLChannel會自動以SSL加密或解密。
PacketChannel的建構子需要一個PacketChannelListener參數。
PacketChannel會於事件發生時,自動呼叫Listener。
Acceptor也使用一般的ServerSocketChannel接收連線。
Acceptor的建構子需要一個AcceptorListener作為參數。
當事件發生時,自動呼叫Listener。
截至目前為止,已經理解的類別如下列表:
- client/MultipleClient
- handlers/Acceptor
- handlers/AcceptorListener
- handlers/Channel
- handlers/ChannelFactory
- handlers/ChannelListener
- handlers/Connector
- handlers/ConnectorListener
- handlers/PacketChannel
- handlers/PacketChannelListener
- io/AcceptSelectorHandler
- io/CallbackErrorHandler
- io/ConnectorSelectorHandler
- io/ReadWriteSelectorHandler
- io/SelectorHandler
- io/SelectorThread
- server/Server
- ssl/SSLChannelFactory
- ssl/SSLChannel
- ssl/SSLChannelManager
截至目前為止,尚未觸碰到的類別如下列表:
- handlers/PlainChannelFactory
- handlers/PlainChannel
- handlers/SimpleProtocolDecoder
- io/ProtocolDecoder
上列四個類別,跟SSL無關。主要是用來提供對照組 (無加密的連線) 。