• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java WebSocketListener类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java IResourceDescriptions类代码示例发布时间:2022-05-21
下一篇:
Java JOp类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap