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

socket请求

协议:

常见的 URL 协议规范(Scheme)对照表:

协议(Scheme)说明
http://非加密的网页请求(80端口)
https://加密的网页请求,使用 TLS(443端口)
ws://非加密的 WebSocket 请求(80端口)
wss://加密的 WebSocket 请求(443端口)
ftp://文件传输协议(FTP)
file://本地文件路径
mailto:打开邮件客户端
tel:拨打电话(通常在手机上)

okhttp进行网络请求

✅ 一、引入依赖

implementation("com.squareup.okhttp3:okhttp:4.12.0")

✅ 二、定义 WebSocket 监听器

import okhttp3.Response
import okhttp3.WebSocket
import okhttp3.WebSocketListener
import okio.ByteString
import android.util.Logclass MyWebSocketListener : WebSocketListener() {override fun onOpen(webSocket: WebSocket, response: Response) {Log.d("WebSocket", "连接成功")webSocket.send("Hello Server")}override fun onMessage(webSocket: WebSocket, text: String) {Log.d("WebSocket", "收到文本消息: $text")}override fun onMessage(webSocket: WebSocket, bytes: ByteString) {Log.d("WebSocket", "收到字节消息: ${bytes.hex()}")}override fun onClosing(webSocket: WebSocket, code: Int, reason: String) {Log.d("WebSocket", "连接关闭中: $code / $reason")webSocket.close(1000, null)}override fun onClosed(webSocket: WebSocket, code: Int, reason: String) {Log.d("WebSocket", "连接已关闭: $code / $reason")}override fun onFailure(webSocket: WebSocket, t: Throwable, response: Response?) {Log.e("WebSocket", "连接失败", t)}
}

 ✅ 三、创建并连接 WebSocket

import okhttp3.OkHttpClient
import okhttp3.Requestfun startWebSocket() {val client = OkHttpClient()val request = Request.Builder().url("wss://echo.websocket.org")  // 替换成你自己的 WebSocket 服务地址.build()val listener = MyWebSocketListener()val webSocket = client.newWebSocket(request, listener)// 可选:关闭客户端时关闭WebSocket连接// client.dispatcher.executorService.shutdown()
}

✅ 四、注意事项

  • URL 要使用 ws://wss://,分别表示不加密与加密的 WebSocket。

  • WebSocket 是异步的,不需要你自己处理线程。

  • OkHttp 会自动管理连接池和线程,但如果不再使用记得关闭它们。

http://www.dtcms.com/a/295275.html

相关文章:

  • 第二十章 W55MH32 WOL示例
  • B站 XMCVE Pwn入门课程学习笔记(5)
  • windows11通过wsl安装Ubuntu到D盘,安装docker及宝塔面板
  • 如何彻底清除服务器上的恶意软件与后门
  • 基础入门 [CMD] Windows SSH 连接服务器教程(系统自带方式)
  • Linux 下在线安装启动VNC
  • TCP 套接字--服务器相关
  • 杰理通用MCU串口+AT指令+485通讯工业语音芯片
  • PostgreSQL 跨库查询方法
  • Apache Flink 实时流处理性能优化实践指南
  • uniapp写app做测试手机通知栏展示内容
  • uni-appDay02
  • 从零用java实现 小红书 springboot vue uniapp(14) 集成阿里云短信验证码
  • 复盘—MySQL触发器实现监听数据表值的变化,对其他数据表做更新
  • 图片查重从设计到实现(2)Milvus安装准备etcd介绍、应用场景及Docker安装配置
  • 算法竞赛阶段二-数据结构(34)数据结构链表STL vector
  • 数据结构-4(常用排序算法、二分查找)
  • ​​GOFLY LIVE CHAT:Golang製オープンソース・ライブチャットシステム​
  • PHP文件下载
  • 嵌入式学习-(李宏毅)机器学习(2)-day29
  • 天线增益方向图是怎么绘制的?
  • 【ROS1】09-ROS通信机制——参数服务器
  • JavaSE:学习输入输出编写简单的程序
  • 从java到vue3:第二天
  • 字符串和对象的深拷贝和浅拷贝
  • 教务管理系统学员管理系统模块设计
  • Ubuntu-安装Epics教程
  • 从零构建 Node20+pnpm+pm2 环境镜像:基于 Dockerfile 的两种方案及持久化配置指南
  • NPM/Yarn完全指南:前端开发的“基石“与“加速器“
  • 用LangChain重构客服系统:腾讯云向量数据库+GPT-4o实战