当前位置: 首页>>代码示例>>Java>>正文


Java WebSocketListener类代码示例

本文整理汇总了Java中okhttp3.ws.WebSocketListener的典型用法代码示例。如果您正苦于以下问题:Java WebSocketListener类的具体用法?Java WebSocketListener怎么用?Java WebSocketListener使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


WebSocketListener类属于okhttp3.ws包,在下文中一共展示了WebSocketListener类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: RealWebSocket

import okhttp3.ws.WebSocketListener; //导入依赖的package包/类
public RealWebSocket(boolean isClient, BufferedSource source, BufferedSink sink, Random random,
    final Executor replyExecutor, final WebSocketListener listener, final String url) {
  this.listener = listener;

  writer = new WebSocketWriter(isClient, sink, random);
  reader = new WebSocketReader(isClient, source, new FrameCallback() {
    @Override public void onMessage(ResponseBody message) throws IOException {
      listener.onMessage(message);
    }

    @Override public void onPing(final Buffer buffer) {
      replyExecutor.execute(new NamedRunnable("OkHttp %s WebSocket Pong Reply", url) {
        @Override protected void execute() {
          try {
            writer.writePong(buffer);
          } catch (IOException ignored) {
          }
        }
      });
    }

    @Override public void onPong(Buffer buffer) {
      listener.onPong(buffer);
    }

    @Override public void onClose(final int code, final String reason) {
      readerSentClose = true;
      replyExecutor.execute(new NamedRunnable("OkHttp %s WebSocket Close Reply", url) {
        @Override protected void execute() {
          peerClose(code, reason);
        }
      });
    }
  });
}
 
开发者ID:lizhangqu,项目名称:PriorityOkHttp,代码行数:36,代码来源:RealWebSocket.java

示例2: withWebSocketUpgrade

import okhttp3.ws.WebSocketListener; //导入依赖的package包/类
/**
 * Attempts to perform a web socket upgrade on the connection. This will overwrite any previously
 * set status or body.
 */
public MockResponse withWebSocketUpgrade(WebSocketListener listener) {
  setStatus("HTTP/1.1 101 Switching Protocols");
  setHeader("Connection", "Upgrade");
  setHeader("Upgrade", "websocket");
  body = null;
  webSocketListener = listener;
  return this;
}
 
开发者ID:lizhangqu,项目名称:PriorityOkHttp,代码行数:13,代码来源:MockResponse.java

示例3: handleWebSocketUpgrade

import okhttp3.ws.WebSocketListener; //导入依赖的package包/类
private void handleWebSocketUpgrade(Socket socket, BufferedSource source, BufferedSink sink,
    RecordedRequest request, MockResponse response) throws IOException {
  String key = request.getHeader("Sec-WebSocket-Key");
  String acceptKey = Util.shaBase64(key + WebSocketProtocol.ACCEPT_MAGIC);
  response.setHeader("Sec-WebSocket-Accept", acceptKey);

  writeHttpResponse(socket, sink, response);

  final WebSocketListener listener = response.getWebSocketListener();
  final CountDownLatch connectionClose = new CountDownLatch(1);

  ThreadPoolExecutor replyExecutor =
      new ThreadPoolExecutor(1, 1, 1, SECONDS, new LinkedBlockingDeque<Runnable>(),
          Util.threadFactory(String.format("MockWebServer %s WebSocket", request.getPath()),
              true));
  replyExecutor.allowCoreThreadTimeOut(true);
  final RealWebSocket webSocket =
      new RealWebSocket(false /* is server */, source, sink, new SecureRandom(), replyExecutor,
          listener, request.getPath()) {
        @Override protected void close() throws IOException {
          connectionClose.countDown();
        }
      };

  // Adapt the request and response into our Request and Response domain model.
  String scheme = request.getTlsVersion() != null ? "https" : "http";
  String authority = request.getHeader("Host"); // Has host and port.
  final Request fancyRequest = new Request.Builder()
      .url(scheme + "://" + authority + "/")
      .headers(request.getHeaders())
      .build();
  final Response fancyResponse = new Response.Builder()
      .code(Integer.parseInt(response.getStatus().split(" ")[1]))
      .message(response.getStatus().split(" ", 3)[2])
      .headers(response.getHeaders())
      .request(fancyRequest)
      .protocol(Protocol.HTTP_1_1)
      .build();

  listener.onOpen(webSocket, fancyResponse);

  while (webSocket.readMessage()) {
  }

  // Even if messages are no longer being read we need to wait for the connection close signal.
  try {
    connectionClose.await();
  } catch (InterruptedException e) {
    throw new RuntimeException(e);
  }

  replyExecutor.shutdown();
  Util.closeQuietly(sink);
  Util.closeQuietly(source);
}
 
开发者ID:lizhangqu,项目名称:PriorityOkHttp,代码行数:56,代码来源:MockWebServer.java

示例4: getWebSocketListener

import okhttp3.ws.WebSocketListener; //导入依赖的package包/类
public WebSocketListener getWebSocketListener() {
  return webSocketListener;
}
 
开发者ID:lizhangqu,项目名称:PriorityOkHttp,代码行数:4,代码来源:MockResponse.java

示例5: handleWebSocketUpgrade

import okhttp3.ws.WebSocketListener; //导入依赖的package包/类
private void handleWebSocketUpgrade(Socket socket, BufferedSource source, BufferedSink sink,
    RecordedRequest request, MockResponse response) throws IOException {
  String key = request.getHeader("Sec-WebSocket-Key");
  String acceptKey = Util.shaBase64(key + WebSocketProtocol.ACCEPT_MAGIC);
  response.setHeader("Sec-WebSocket-Accept", acceptKey);

  writeHttpResponse(socket, sink, response);

  final WebSocketListener listener = response.getWebSocketListener();
  final CountDownLatch connectionClose = new CountDownLatch(1);

  ThreadPoolExecutor replyExecutor =
      new ThreadPoolExecutor(1, 1, 1, SECONDS, new LinkedBlockingDeque<Runnable>(),
          Util.threadFactory(Util.format("MockWebServer %s WebSocket", request.getPath()),
              true));
  replyExecutor.allowCoreThreadTimeOut(true);
  final RealWebSocket webSocket =
      new RealWebSocket(false /* is server */, source, sink, new SecureRandom(), replyExecutor,
          listener, request.getPath()) {
        @Override protected void close() throws IOException {
          connectionClose.countDown();
        }
      };

  // Adapt the request and response into our Request and Response domain model.
  String scheme = request.getTlsVersion() != null ? "https" : "http";
  String authority = request.getHeader("Host"); // Has host and port.
  final Request fancyRequest = new Request.Builder()
      .url(scheme + "://" + authority + "/")
      .headers(request.getHeaders())
      .build();
  final Response fancyResponse = new Response.Builder()
      .code(Integer.parseInt(response.getStatus().split(" ")[1]))
      .message(response.getStatus().split(" ", 3)[2])
      .headers(response.getHeaders())
      .request(fancyRequest)
      .protocol(Protocol.HTTP_1_1)
      .build();

  listener.onOpen(webSocket, fancyResponse);

  while (webSocket.readMessage()) {
  }

  // Even if messages are no longer being read we need to wait for the connection close signal.
  try {
    connectionClose.await();
  } catch (InterruptedException e) {
    throw new RuntimeException(e);
  }

  replyExecutor.shutdown();
  Util.closeQuietly(sink);
  Util.closeQuietly(source);
}
 
开发者ID:RunningTheSnail,项目名称:Okhttp,代码行数:56,代码来源:MockWebServer.java


注:本文中的okhttp3.ws.WebSocketListener类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。