private final void read(SelectionKey key) {
		@SuppressWarnings("resource")
		SocketChannel socketChannel = (SocketChannel) key.channel();
		Session session = (Session) key.attachment();
		mReadBuffer.clear();
		int amount;
		try {
			amount = socketChannel.read(mReadBuffer);
			if (amount > 0) {
				session.requestHandleInput(mReadBuffer);
			} else if (amount == -1) {
				session.requestClose(false);
			}
		} catch (Throwable throwable) {
			session.requestClose(true);
		}
	}