Java Web套接字和非阻塞模式
如果我们将套接字通道configureBlocking设置为false,那么连接会自动变为双工模式吗?我想说的是,在这种情况下,服务器可以将数据异步推送到客户端浏览器吗?是否需要手动编程此行为?ServerSocketChannel和SocketChannel configureBlocking方法继承自AbstractSelectableChannel类。configureBlocking方法返回SelectableChannel对象 以下是有关SelectableChannel对象的文档片段: 阻塞模式 可选通道处于阻塞模式或非阻塞模式。在阻塞模式下,在通道上调用的每个I/O操作都将阻塞,直到完成为止。在非阻塞模式下,I/O操作将永远不会阻塞,并且可能传输的字节数少于请求的字节数,或者可能根本没有字节。可选择信道的阻塞模式可通过调用其isBlocking方法来确定 新创建的可选通道始终处于阻塞模式。非阻塞模式与基于选择器的多路复用结合使用最为有用。在向选择器注册之前,通道必须置于非阻塞模式,并且在取消注册之前不得返回到阻塞模式 新创建的可选通道始终处于阻塞模式,因此如果您想要非阻塞双工模式,则必须显式调用configureBlocking(false) 以下是您可能会觉得有用的Javadoc列表:Java Web套接字和非阻塞模式,java,Java,如果我们将套接字通道configureBlocking设置为false,那么连接会自动变为双工模式吗?我想说的是,在这种情况下,服务器可以将数据异步推送到客户端浏览器吗?是否需要手动编程此行为?ServerSocketChannel和SocketChannel configureBlocking方法继承自AbstractSelectableChannel类。configureBlocking方法返回SelectableChannel对象 以下是有关SelectableChannel对象的文档片段
)简言之,必须编辑程序才能使用可选选项。这并不像拨动开关那么简单。