Android webSocket(okhttp-4.9.0)

Android webSocket(okhttp-4.9.0),第1张

概述开发过程,部分需要webSocket,这里使用okhttp自带socket。一、依赖:com.squareup.okhttp3:okhttp:4.9.0二、创建webSocket1、创建okhttpClient和Requestpublicvoidinit(){ //初始化okhttpClientmBuilder=newOkHttpClient.Builder();//设置读取超时

开发过程,部分需要webSocket,这里使用 okhttp 自带socket。

一、依赖:com.squareup.okhttp3:okhttp:4.9.0

二、创建webSocket

1、创建okhttpClIEnt和Request

public voID init(){		//初始化okhttpClIEnt        mBuilder = new OkhttpClIEnt.Builder();        //设置读取超时时间        mBuilder.readTimeout(120, TimeUnit.SECONDS);        //设置写的超时时间        mBuilder.writeTimeout(120, TimeUnit.SECONDS);        //设置连接超时时间        mBuilder.connectTimeout(120, TimeUnit.SECONDS);        //心跳时间        mBuilder.PingInterval(10,TimeUnit.SECONDS);        mOkhttpClIEnt = mBuilder.build();				//初始化request 		mRequest = new Request.Builder().url(socketUrl).build();}	

2、创建webSocket并获取socket对象

public voID connect(){		mWebSocket = mOkhttpClIEnt.newWebSocket(mRequest, new WebSocketListener() {                @OverrIDe                public voID onopen(final WebSocket webSocket, final Response response) {                    super.onopen(webSocket, response);                    //socket 连接成功(需要自己切换到主线程)                }                @OverrIDe                public voID onMessage(WebSocket webSocket, final String text) {                    super.onMessage(webSocket, text);                   //socket 获取String 类型数据(需要自己切换到主线程)                }                @OverrIDe                public voID onMessage(WebSocket webSocket, ByteString bytes) {                    super.onMessage(webSocket, bytes);					//socket 获取ByteString 类型数据(需要自己切换到主线程)                }                @OverrIDe                public voID onClosing(final WebSocket webSocket, final int code, final String reason) {                    super.onClosing(webSocket, code, reason);					                                   }                @OverrIDe                public voID onClosed(final WebSocket webSocket, final int code, final String reason) {                    super.onClosed(webSocket, code, reason);					//释放连接                                    }                @OverrIDe                public voID onFailure(final WebSocket webSocket, final Throwable t, final Response response) {                    super.onFailure(webSocket, t, response);                    //其他异常,都会执行这个方法                }            });        }	}

三、数据交互 mWebSocket.send(msg);

四、关闭webSocket

如果只是关闭连接可采用:

1、mWebSocket.close(code,reason),则WebSocketListener.onClosed()会被调用。这里需要注意是code码,不可以随便传递。可以参考文档 https://tools.ietf.org/html/rfc6455#section-7.4。

2、mWebSocket.cancel(),则WebSocketListener.onFailure()会被调用

 

总结

以上是内存溢出为你收集整理的Android webSocket(okhttp-4.9.0)全部内容,希望文章能够帮你解决Android webSocket(okhttp-4.9.0)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1018538.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存