用java nio做长连接消息服务:
selector.select();
Set<SelectionKey> selectionKeys = selector.selectedKeys();
Iterator<SelectionKey> iterator = selectionKeys.iterator();
while (iterator.hasNext()) {
SelectionKey selectionKey = iterator.next();
iterator.remove();
handleKey(selectionKey);
}
客户端没有发任何数据过来,只是保持了连接状态,selectkey.isReadable()却老是返回true,然后调用selectionkey.channel().read()也确实读不到数据,这是为什么?
用完 selectionKey后remove掉
while (iterator.hasNext()) {
SelectionKey selectionKey = iterator.next();
iterator.remove();
handleKey(selectionKey);
iterator.remove();
}