当前位置: 首页 > news >正文

宝安营销型网站建设公司淘宝推广平台有哪些

宝安营销型网站建设公司,淘宝推广平台有哪些,小程序变成网页链接,最实用的仓库管理系统websocket 提供了客户端和服务端的长链接&#xff0c;允许客户端和服务端双向发送消息 okhttp 提供了使用websocket 相关接口议。同时为方便单元测试&#xff0c;又提供了mockwebserver可以把一个安卓客户端作为服务端接受消息。 websocket使用 权限 <uses-permission an…

websocket 提供了客户端和服务端的长链接,允许客户端和服务端双向发送消息
okhttp 提供了使用websocket 相关接口议。同时为方便单元测试,又提供了mockwebserver可以把一个安卓客户端作为服务端接受消息。

websocket使用

权限

<uses-permission android:name="android.permission.INTERNET" />

app的build.gradle引入okhttp3库

implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.11'

创建监听

inner class MyWebSocketListener :WebSocketListener(){override fun onOpen(webSocket: WebSocket, response: Response) {println("WebSocketListener onOpen 连接到服务器 ")}override open fun onMessage(webSocket: WebSocket, text: String) {println("WebSocketListener onMessage 收到消息 ")}override open fun onMessage(webSocket: WebSocket, bytes: ByteString) {println("WebSocketListener onMessage  收到消息 bytes ")}override open fun onClosing(webSocket: WebSocket, code: Int, reason: String) {println("WebSocketListener onClosing ")}override open fun onClosed(webSocket: WebSocket, code: Int, reason: String) {println("WebSocketListener onClosed 关闭")}override open fun onFailure(webSocket: WebSocket, t: Throwable, response: Response?) {println("WebSocketListener onFailure 失败")//可以一段延时后再次调用mClient.newWebSocket 重连,见下一段}}

连接websockt服务器,websocket的地址格式是ws://ip:port

       	val mWbSocketUrl = "ws://192.168.124.35:40689" //ip.端口由服务器提供val mClient = OkHttpClient.Builder().pingInterval(10*1000, TimeUnit.SECONDS) //心跳间隔.readTimeout(10*1000, TimeUnit.SECONDS) //设置读取超时时间.writeTimeout(10*1000, TimeUnit.SECONDS) //设置写的超时时间.connectTimeout(10*1000, TimeUnit.SECONDS) //设置连接超时时间.build()val request: Request = Request.Builder().url(mWbSocketUrl).build()mWebSocket = mClient.newWebSocket(request, MyWebSocketListener())

使用

//发送消息mWebSocket?.send("你好"). ..
//关闭连接mWebSocket?.close(1000, null) //状态码和原因

mockwebserver使用

mockwebserver可以让客户端作为一个服务器接收消息,包括http、websocket和其他协议,这里只讲websocket协议
权限

		<uses-permission android:name="android.permission.INTERNET" />

app的build.gradle引入mockwebserver

		implementation 'com.squareup.okhttp3:mockwebserver:5.0.0-alpha.11'

创建监听

val TAG = "WebServerUtil "
var mWebSocket: WebSocket? = nullinner class MyWebSocketListener :WebSocketListener(){override fun onOpen(webSocket: WebSocket, response: Response) {super.onOpen(webSocket, response)//有客户端连接时回调Log.e(TAG, "服务器收到客户端连接成功回调:")//TODO test 这里是演示怎么回消息mWebSocket = webSocketmWebSocket?.send("我是服务器,收到消息")}override fun onMessage(webSocket: WebSocket, bytes: ByteString) {super.onMessage(webSocket, bytes)}override fun onMessage(webSocket: WebSocket, text: String) {super.onMessage(webSocket, text)Log.e(TAG, "服务器收到消息:$text")}override fun onClosed(webSocket: WebSocket, code: Int, reason: String) {super.onClosed(webSocket, code, reason)Log.e(TAG, "onClosed:")}}

创建服务器 注意 mMockWebServer.start(inet4Address,40689) 是我为了方便调试,设置了固定的ip端口,但是这里有端口冲突的可能性。也可以不调用start方法,如果不写start(…)会返回localhost+一个随机端口号。getLocalIpAddress()方法是我找的一个获取本地ip的工具,我这里把自己手机网络ip设置成服务器ip

			val mMockWebServer = MockWebServer()val response = MockResponse().withWebSocketUpgrade(MyWebSocketListener())val inet4Address = InetAddress.getByName(getLocalIpAddress()) //ip mMockWebServer.start(inet4Address,40689) //ip 端口  固定端口可能出现占用现象,这一行可以去掉,会使用随机端口mMockWebServer.enqueue(response)val websocketUrl = "ws://" + mMockWebServer.hostName + ":" + mMockWebServer.port + "/"println("websocketUrl= $websocketUrl")

最终websocketUrl是服务器的地址,客户端连接服务器时就使用这个地址

			//发送消息给客户端mWebSocket?.send("message"). ..//关闭服务器mMockWebServer.closeQuietly()

附 获取本地ip的方法(需要网络权限)

			private fun getLocalIpAddress(): String? {try {val nilist = Collections.list(NetworkInterface.getNetworkInterfaces())for (ni in nilist) {val ialist = Collections.list(ni.inetAddresses)for (address in ialist) {if (!address.isLoopbackAddress && address is Inet4Address) {return address.getHostAddress()}}}} catch (e: SocketException) {e.printStackTrace()}return ""}
http://www.ritt.cn/news/22354.html

相关文章:

  • 服务哪家好中医小程序定制seo单词优化
  • 个性化网站定制价格北京公司排名seo
  • 我的网站不做推广 百度能搜索到我网站吗大学生网络营销策划方案书
  • 重庆企业网站推广流程抖音搜索seo排名优化
  • 如何做一个二维码相册seo最新快速排名
  • brophp框架如何做网站专业营销策划团队
  • 运城建设厅官方网站百度优化软件
  • 深圳外贸网站建设seo是什么级别
  • 潍坊市做网站百度关键词推广教程
  • 爱南宁app下载官网最新手机网站优化排名
  • 月刊可以用什么网站做网址大全下载到桌面
  • 网站建设最便宜网站seo外链建设
  • 怎么利用婚庆网站做营销搜索引擎优化搜索优化
  • 孝感市门户网站管理中心怎么制作网页推广
  • 做的系统怎么和网站对接广州优化疫情防控举措
  • 网站单页做301淘宝关键词排名查询工具
  • 泉州网站建设公司首选宁波网站建设推广公司价格
  • 网站建设客服国外市场网站推广公司
  • 在百度做推广送网站好吗宁波seo推广定制
  • 做网站公司(信科网络)上海网络推广专员
  • 唐山疫情最新消息今天seo价格是多少
  • 网站怎么做来流量西安seo代理计费
  • 响应网站 整屏在线建站网页制作网站建设平台
  • 网站快照前显示中文怎么做的百度营销是什么
  • 电脑有固定IP 做网站免费seo网站诊断免费
  • 桂林北站客服电话互联网广告行业
  • 国外营销型网站建设电脑清理软件十大排名
  • 网站服务器 免费百度快照在哪里
  • 网站建设专家公司排行卖链接的网站
  • 温州网站设计网络广告营销