类 Http2Connection

java.lang.Object
com.lark.oapi.okhttp.internal.http2.Http2Connection
所有已实现的接口:
Closeable, AutoCloseable

public final class Http2Connection extends Object implements Closeable
A socket connection to a remote peer. A connection hosts streams which can send and receive data.

Many methods in this API are synchronous: the call is completed before the method returns. This is typical for Java but atypical for HTTP/2. This is motivated by exception transparency: an IOException that was triggered by a certain caller can be caught and handled by that caller.

  • 方法详细资料

    • openStreamCount

      public int openStreamCount()
      Returns the number of open streams on this connection.
    • maxConcurrentStreams

      public int maxConcurrentStreams()
    • pushStream

      public Http2Stream pushStream(int associatedStreamId, List<Header> requestHeaders, boolean out) throws IOException
      Returns a new server-initiated stream.
      参数:
      associatedStreamId - the stream that triggered the sender to create this stream.
      out - true to create an output stream that we can use to send data to the remote peer. Corresponds to FLAG_FIN.
      抛出:
      IOException
    • newStream

      public Http2Stream newStream(List<Header> requestHeaders, boolean out) throws IOException
      Returns a new locally-initiated stream.
      参数:
      out - true to create an output stream that we can use to send data to the remote peer. Corresponds to FLAG_FIN.
      抛出:
      IOException
    • writeData

      public void writeData(int streamId, boolean outFinished, Buffer buffer, long byteCount) throws IOException
      Callers of this method are not thread safe, and sometimes on application threads. Most often, this method will be called to send a buffer worth of data to the peer.

      Writes are subject to the write window of the stream and the connection. Until there is a window sufficient to send byteCount, the caller will block. For example, a user of HttpURLConnection who flushes more bytes to the output stream than the connection's write window will block.

      Zero byteCount writes are not subject to flow control and will not block. The only use case for zero byteCount is closing a flushed output stream.

      抛出:
      IOException
    • flush

      public void flush() throws IOException
      抛出:
      IOException
    • shutdown

      public void shutdown(ErrorCode statusCode) throws IOException
      Degrades this connection such that new streams can neither be created locally, nor accepted from the remote peer. Existing streams are not impacted. This is intended to permit an endpoint to gracefully stop accepting new requests without harming previously established streams.
      抛出:
      IOException
    • close

      public void close()
      Closes this connection. This cancels all open streams and unanswered pings. It closes the underlying input and output streams and shuts down internal executor services.
      指定者:
      close 在接口中 AutoCloseable
      指定者:
      close 在接口中 Closeable
    • start

      public void start() throws IOException
      Sends any initial frames and starts reading frames from the remote peer. This should be called after Http2Connection.Builder.build() for all new connections.
      抛出:
      IOException
    • setSettings

      public void setSettings(Settings settings) throws IOException
      Merges settings into this peer's settings and sends them to the remote peer.
      抛出:
      IOException
    • isHealthy

      public boolean isHealthy(long nowNs)