Back to Uni App

Websocket

docs/api/websocket.md

2.3.337.9 KB
Original Source

::: warning 注意事项

uni.onSocketOpenuni.onSocketErroruni.sendSocketMessageuni.onSocketMessageuni.closeSocketuni.onSocketClose 操作的是应用全局范围创建的第一个 WebSocket 连接,当应用中存在多个 WebSocket 连接时,不能通过以上方法进行操作管理。这时需要通过 uni.connectSocket 返回的 SocketTask 对象的 onOpen、onError、send、onMessage、close、onClose 方法进行操作。

为了有更好的兼容性,不要使用 uni 上已废弃的 uni.onSocketOpenuni.onSocketErroruni.sendSocketMessageuni.onSocketMessageuni.closeSocketuni.onSocketClose 等方法。

:::

<!-- ## uni.connectSocket(options) @connectsocket -->

::: sourceCode

uni.connectSocket(options) @connectsocket

GitCode: https://gitcode.com/dcloud/uni-api/tree/alpha/uni_modules/uni-websocket

GitHub: https://github.com/dcloudio/uni-api/tree/alpha/uni_modules/uni-websocket

:::

创建一个 WebSocket 连接。

connectSocket 兼容性

Web微信小程序AndroidiOSiOS uni-app x UTS 插件HarmonyOSHarmonyOS(Vapor)
4.04.413.914.114.114.615.0

参数

名称类型必填默认值兼容性描述
optionsConnectSocketOptions-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

options 的属性描述

名称类型必备默认值兼容性描述
urlstring-Web: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: 4.61; HarmonyOS(Vapor): 5.0开发者服务器接口地址
headerUTSJSONObjectnullWeb: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: -HTTP 请求 Header,header 中不能设置 Referer
protocolsArray<string>nullWeb: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: -子协议数组
success(result: ConnectSocketSuccess) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用成功的回调函数
fail(result: ConnectSocketFail) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用失败的回调函数
complete(result: any) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用结束的回调函数(调用成功、失败都会执行)
forceCellularNetworkboolean-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -需要基础库: 2.29.0

强制使用蜂窝网络发送请求 | | perMessageDeflate | boolean | 否 | - | Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: - | 需要基础库: 2.8.0

是否开启压缩扩展 | | tcpNoDelay | boolean | 否 | - | Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: - | 需要基础库: 2.4.0

建立 TCP 连接的时候的 TCP_NODELAY 设置 | | timeout | number | 否 | - | Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: - | 需要基础库: 2.10.0

超时时间,单位为毫秒 |

ConnectSocketSuccess 的属性值 @connectsocketsuccess-values

名称类型必备默认值兼容性描述
errMsgstring-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

ConnectSocketFail 的属性值 @connectsocketfail-values

名称类型必备默认值兼容性描述
errCodenumber-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -错误码
  • 600009 URL格式不合法 | | errSubject | string | 是 | - | Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: - | 统一错误主题(模块)名称 | | data | any | 否 | - | Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: - | 错误信息中包含的数据 | | cause | Error | 否 | - | Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: - | 源错误信息,可以包含多个错误,详见SourceError | | errMsg | string | 是 | - | Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: - | |

返回值

类型
SocketTask

SocketTask 的方法 @sockettask-values

send(options: SendSocketMessageOptions): void; @send

send 通过 WebSocket 连接发送数据

send 兼容性
Web微信小程序AndroidiOSiOS uni-app x UTS 插件HarmonyOSHarmonyOS(Vapor)
4.04.413.914.114.114.615.0
参数
名称类型必填默认值兼容性描述
optionsSendSocketMessageOptions-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

options 的属性描述

名称类型必备默认值兼容性描述
dataany-Web: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: 4.61; HarmonyOS(Vapor): 5.0需要发送的内容, app平台从 4.61 版本开始支持ArrayBuffer
success(result: GeneralCallbackResult) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用成功的回调函数
fail(result: SendSocketMessageFail) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用失败的回调函数
complete(result: any) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用结束的回调函数(调用成功、失败都会执行)
SendSocketMessageFail 的属性值 @sendsocketmessagefail-values
名称类型必备默认值兼容性描述
errCodenumber-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -错误码
errSubjectstring-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -统一错误主题(模块)名称
dataany-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -错误信息中包含的数据
causeError-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -源错误信息,可以包含多个错误,详见SourceError
errMsgstring-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

errCode 的属性描述

合法值兼容性描述
10001Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -发送数据超限,发送队列不能超过16M大小。
10002Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -websocket未连接
602001Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -websocket系统错误

close(options: CloseSocketOptions): void; @close

close 关闭 WebSocket 连接

close 兼容性
Web微信小程序AndroidiOSiOS uni-app x UTS 插件HarmonyOSHarmonyOS(Vapor)
4.04.413.914.114.114.615.0
参数
名称类型必填默认值兼容性描述
optionsCloseSocketOptions-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

options 的属性描述

名称类型必备默认值兼容性描述
codenumber1000Web: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: 4.61; HarmonyOS(Vapor): 5.0一个数字值表示关闭连接的状态号,表示连接被关闭的原因。如果这个参数没有被指定,默认的取值是1000 (表示正常连接关闭)
reasonstring""Web: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: 4.61; HarmonyOS(Vapor): 5.0一个可读的字符串,表示连接被关闭的原因。这个字符串必须是不长于123字节的UTF-8 文本(不是字符)
success(result: GeneralCallbackResult) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用成功的回调函数
fail(result: GeneralCallbackResult) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用失败的回调函数
complete(result: GeneralCallbackResult) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用结束的回调函数(调用成功、失败都会执行)

onOpen(callback: (result: OnSocketOpenCallbackResult) => void): void; @onopen

onOpen 监听 WebSocket 连接打开事件

onOpen 兼容性
Web微信小程序AndroidiOSiOS uni-app x UTS 插件HarmonyOSHarmonyOS(Vapor)
4.04.413.914.114.114.615.0
参数
名称类型必填默认值兼容性描述
callback(result: OnSocketOpenCallbackResult) => void-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -
OnSocketOpenCallbackResult 的属性值 @onsocketopencallbackresult-values
名称类型必备默认值兼容性描述
headerany-Web: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: 4.61; HarmonyOS(Vapor): 5.0连接成功的 HTTP 响应 Header

onClose(callback: (result: any) => void): void; @onclose

onClose 监听 WebSocket 连接关闭事件

onClose 兼容性
Web微信小程序AndroidiOSiOS uni-app x UTS 插件HarmonyOSHarmonyOS(Vapor)
4.04.413.914.114.114.615.0
参数
名称类型必填默认值兼容性描述
callback(result: any) => void-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

onError(callback: (result: GeneralCallbackResult) => void): void; @onerror

onError 监听 WebSocket 错误

onError 兼容性
Web微信小程序AndroidiOSiOS uni-app x UTS 插件HarmonyOSHarmonyOS(Vapor)
4.04.413.914.114.114.615.0
参数
名称类型必填默认值兼容性描述
callback(result: GeneralCallbackResult) => void-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

onMessage(callback: (result: OnSocketMessageCallbackResult) => void): void; @onmessage

onMessage 监听 WebSocket 接受到服务器的消息事件

onMessage 兼容性
Web微信小程序AndroidiOSiOS uni-app x UTS 插件HarmonyOSHarmonyOS(Vapor)
4.04.413.914.114.114.615.0
参数
名称类型必填默认值兼容性描述
callback(result: OnSocketMessageCallbackResult) => void-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -
OnSocketMessageCallbackResult 的属性值 @onsocketmessagecallbackresult-values
名称类型必备默认值兼容性描述
dataany-Web: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: 4.61; HarmonyOS(Vapor): 5.0服务器返回的消息, app平台从 4.61 版本开始支持ArrayBuffer

参见

<!-- ## uni.~~onSocketOpen(options)~~ @onsocketopen -->

::: sourceCode

uni.onSocketOpen(options) @onsocketopen

GitCode: https://gitcode.com/dcloud/uni-api/tree/alpha/uni_modules/uni-websocket

GitHub: https://github.com/dcloudio/uni-api/tree/alpha/uni_modules/uni-websocket

:::

监听WebSocket连接打开事件。 已废弃,使用 SocketTask 的 onOpen 替换。

onSocketOpen 兼容性

Web微信小程序AndroidiOSiOS uni-app x UTS 插件HarmonyOSHarmonyOS(Vapor)
4.04.413.914.114.114.615.0

参数

名称类型必填默认值兼容性描述
options(result: OnSocketOpenCallbackResult) => void-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

参见

<!-- ## uni.~~onSocketError(callback)~~ @onsocketerror -->

::: sourceCode

uni.onSocketError(callback) @onsocketerror

GitCode: https://gitcode.com/dcloud/uni-api/tree/alpha/uni_modules/uni-websocket

GitHub: https://github.com/dcloudio/uni-api/tree/alpha/uni_modules/uni-websocket

:::

监听WebSocket错误。 已废弃,使用 SocketTask 的 onError 替换。

onSocketError 兼容性

Web微信小程序AndroidiOSiOS uni-app x UTS 插件HarmonyOSHarmonyOS(Vapor)
4.04.413.914.114.114.615.0

参数

名称类型必填默认值兼容性描述
callback(result: OnSocketErrorCallbackResult) => void-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

OnSocketErrorCallbackResult 的属性值 @onsocketerrorcallbackresult-values

名称类型必备默认值兼容性描述
errMsgstring-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -错误信息

参见

<!-- ## uni.~~sendSocketMessage(options)~~ @sendsocketmessage -->

::: sourceCode

uni.sendSocketMessage(options) @sendsocketmessage

GitCode: https://gitcode.com/dcloud/uni-api/tree/alpha/uni_modules/uni-websocket

GitHub: https://github.com/dcloudio/uni-api/tree/alpha/uni_modules/uni-websocket

:::

通过 WebSocket 连接发送数据,需要先 uni.connectSocket,并在 uni.onSocketOpen 回调之后才能发送。 已废弃,使用 SocketTask 的 send 替换。

sendSocketMessage 兼容性

Web微信小程序AndroidiOSiOS uni-app x UTS 插件HarmonyOSHarmonyOS(Vapor)
4.04.413.914.114.114.615.0

参数

名称类型必填默认值兼容性描述
optionsSendSocketMessageOptions-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: --

options 的属性描述

名称类型必备默认值兼容性描述
dataany-Web: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: 4.61; HarmonyOS(Vapor): 5.0需要发送的内容, app平台从 4.61 版本开始支持ArrayBuffer
success(result: GeneralCallbackResult) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用成功的回调函数
fail(result: SendSocketMessageFail) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用失败的回调函数
complete(result: any) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用结束的回调函数(调用成功、失败都会执行)

SendSocketMessageFail 的属性值 @sendsocketmessagefail-values

名称类型必备默认值兼容性描述
errCodenumber-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -错误码
errSubjectstring-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -统一错误主题(模块)名称
dataany-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -错误信息中包含的数据
causeError-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -源错误信息,可以包含多个错误,详见SourceError
errMsgstring-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

errCode 的属性描述

合法值兼容性描述
10001Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -发送数据超限,发送队列不能超过16M大小。
10002Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -websocket未连接
602001Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -websocket系统错误

参见

注意事项

  • 出于性能的权衡,在底层实现上发送队列占用的内存不能超过16M,一旦超过将导致连接被关闭。
<!-- ## uni.~~onSocketMessage(callback)~~ @onsocketmessage -->

::: sourceCode

uni.onSocketMessage(callback) @onsocketmessage

GitCode: https://gitcode.com/dcloud/uni-api/tree/alpha/uni_modules/uni-websocket

GitHub: https://github.com/dcloudio/uni-api/tree/alpha/uni_modules/uni-websocket

:::

监听WebSocket接受到服务器的消息事件。 已废弃,使用 SocketTask 的 onMessage 替换。

onSocketMessage 兼容性

Web微信小程序AndroidiOSiOS uni-app x UTS 插件HarmonyOSHarmonyOS(Vapor)
4.04.413.914.114.114.615.0

参数

名称类型必填默认值兼容性描述
callback(result: OnSocketMessageCallbackResult) => void-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

OnSocketMessageCallbackResult 的属性值 @onsocketmessagecallbackresult-values

名称类型必备默认值兼容性描述
dataany-Web: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: 4.61; HarmonyOS(Vapor): 5.0服务器返回的消息, app平台从 4.61 版本开始支持ArrayBuffer

参见

<!-- ## uni.~~closeSocket(options)~~ @closesocket -->

::: sourceCode

uni.closeSocket(options) @closesocket

GitCode: https://gitcode.com/dcloud/uni-api/tree/alpha/uni_modules/uni-websocket

GitHub: https://github.com/dcloudio/uni-api/tree/alpha/uni_modules/uni-websocket

:::

关闭 WebSocket 连接。 已废弃,使用 SocketTask 的 close 替换。

closeSocket 兼容性

Web微信小程序AndroidiOSiOS uni-app x UTS 插件HarmonyOSHarmonyOS(Vapor)
4.04.413.914.114.114.615.0

参数

名称类型必填默认值兼容性描述
optionsCloseSocketOptions-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: --

options 的属性描述

名称类型必备默认值兼容性描述
codenumber1000Web: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: 4.61; HarmonyOS(Vapor): 5.0一个数字值表示关闭连接的状态号,表示连接被关闭的原因。如果这个参数没有被指定,默认的取值是1000 (表示正常连接关闭)
reasonstring""Web: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: 4.61; HarmonyOS(Vapor): 5.0一个可读的字符串,表示连接被关闭的原因。这个字符串必须是不长于123字节的UTF-8 文本(不是字符)
success(result: GeneralCallbackResult) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用成功的回调函数
fail(result: GeneralCallbackResult) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用失败的回调函数
complete(result: GeneralCallbackResult) => voidnullWeb: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -接口调用结束的回调函数(调用成功、失败都会执行)

参见

<!-- ## uni.~~onSocketClose(callback)~~ @onsocketclose -->

::: sourceCode

uni.onSocketClose(callback) @onsocketclose

GitCode: https://gitcode.com/dcloud/uni-api/tree/alpha/uni_modules/uni-websocket

GitHub: https://github.com/dcloudio/uni-api/tree/alpha/uni_modules/uni-websocket

:::

监听WebSocket关闭。 已废弃,使用 SocketTask 的 onClose 替换。

onSocketClose 兼容性

Web微信小程序AndroidiOSiOS uni-app x UTS 插件HarmonyOSHarmonyOS(Vapor)
4.04.413.914.114.114.615.0

参数

名称类型必填默认值兼容性描述
callback(result: OnSocketCloseCallbackResult) => void-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

OnSocketCloseCallbackResult 的属性值 @onsocketclosecallbackresult-values

名称类型必备默认值兼容性描述
codenumber-Web: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: 4.61; HarmonyOS(Vapor): 5.0一个数字值表示关闭连接的状态号,表示连接被关闭的原因。
reasonstring-Web: -; 微信小程序: 4.41; Android: 3.91; iOS: 4.11; iOS uni-app x UTS 插件: 4.11; HarmonyOS: 4.61; HarmonyOS(Vapor): 5.0一个可读的字符串,表示连接被关闭的原因。

参见

示例

示例为hello uni-app x alpha分支,与最新HBuilderX Alpha版同步。与最新正式版同步的master分支示例另见 ::: preview https://hellouniappx.dcloud.net.cn/web/#/pages/API/websocket/websocket

appRedirect https://hellouniappx.dcloud.net.cn/appredirect.html?path=pages/API/websocket/websocket

示例

vue
<template>
  <page-head title="websocket通讯示例"></page-head>
  <view class="uni-padding-wrap">
    <view class="uni-btn-v">
      <text class="websocket-msg">{{ showMsg }}</text>
      <button class="uni-btn-v" type="primary" @click="connect">
        连接websocket服务
      </button>
      <button class="uni-btn-v" v-show="connected" type="primary" @click="send">
        发送一条消息
      </button>
      <button class="uni-btn-v" type="primary" @click="close">
        断开websocket服务
      </button>
      <text class="websocket-tips">发送消息后会收到一条服务器返回的消息(与发送的消息内容一致)</text>
      <text
        class="websocket-tips">web端和小程序端uni-push功能、app-android端和app-ios端的web-view组件日志回显、app-harmony端的日志回显会占用一个socket链接,此时使用全局的socket
        api会引发混乱。应使用socketTask操作websocket链接。</text>
      <text class="websocket-tips">小程序端日志回显功能也会占用一个socket链接,如果不希望使用此功能可以在HBuilderX控制台关闭日志回显。</text>
      <button class="uni-btn-v" type="primary" @click="goSocketTask">
        跳转 socketTask 示例
      </button>
    </view>
  </view>
</template>

<script setup lang="uts">
  const connected = ref(false)
  const connecting = ref(false)
  const msg = ref('')
  const roomId = ref('')
  const platform = ref('')

  const showMsg = computed(() : string => {
    if (connected.value) {
      if (msg.value.length > 0) {
        return '收到消息:' + msg.value
      } else {
        return '等待接收消息'
      }
    } else {
      return '尚未连接'
    }
  })

  onLoad(() => {
    platform.value = uni.getDeviceInfo().platform as string
  })

  onUnload(() => {
    uni.closeSocket({
      code: 1000,
      reason: 'close reason from client',
      success: (res : any) => {
        console.log('uni.closeSocket success', res)
      },
      fail: (err : any) => {
        console.log('uni.closeSocket fail', err)
      },
    } as CloseSocketOptions)
    uni.hideLoading()
  })

  const connect = () => {
    if (connected.value || connecting.value) {
      uni.showModal({
        content: '正在连接或者已经连接,请勿重复连接',
        showCancel: false,
      })
      return
    }
    connecting.value = true
    uni.showLoading({
      title: '连接中...',
    })
    uni.connectSocket({
      url: 'wss://websocket.dcloud.net.cn',
      header:{
        "test":"uniapp x"
      },
      protocols: null,
      success: (res : any) => {
        // 这里是接口调用成功的回调,不是连接成功的回调,请注意
        console.log('uni.connectSocket success', res)
      },
      fail: (err : any) => {
        // 这里是接口调用失败的回调,不是连接失败的回调,请注意
        console.log('uni.connectSocket fail', err)
      },
    })
    uni.onSocketOpen((res) => {
      connecting.value = false
      connected.value = true
      uni.hideLoading()

      uni.showToast({
        icon: 'none',
        title: '连接成功',
      })
      console.log('onOpen', res)
    })
    uni.onSocketError((err) => {
      connecting.value = false
      connected.value = false
      uni.hideLoading()

      uni.showModal({
        content: '连接失败,可能是websocket服务不可用,请稍后再试',
        showCancel: false,
      })
      console.log('onError', err)
    })
    uni.onSocketMessage((res) => {
      if (res.data instanceof ArrayBuffer) {
        var int8 = new Int8Array(res.data)
        msg.value = int8.toString()
        console.log('onMessage', res)
      } else {
        msg.value = res.data as string
        console.log('onMessage', res)
      }
    })
    uni.onSocketClose((res) => {
      connected.value = false
      msg.value = ''
      console.log('onClose', res)
    })
  }

  const send = () => {
    uni.sendSocketMessage({
      data:
        'from ' +
        platform.value +
        ' : ' +
        parseInt((Math.random() * 10000).toString()).toString(),
      success: (res : any) => {
        console.log(res)
      },
      fail: (err : any) => {
        console.log(err)
      },
    } as SendSocketMessageOptions)
  }

  const close = () => {
    uni.closeSocket({
      code: 1000,
      reason: 'close reason from client',
      success: (res : any) => {
        console.log('uni.closeSocket success', res)
      },
      fail: (err : any) => {
        console.log('uni.closeSocket fail', err)
      },
    } as CloseSocketOptions)
  }

  const goSocketTask = () => {
    uni.navigateTo({
      url: '/pages/API/websocket/socketTask',
    })
  }

</script>

<style>
  .uni-btn-v {
    padding: 5px 0;
  }

  .uni-btn-v {
    margin: 10px 0;
  }

  .websocket-msg {
    padding: 40px 0px;
    text-align: center;
    font-size: 14px;
    line-height: 40px;
    color: #666666;
  }

  .websocket-tips {
    padding: 10px 0px;
    text-align: center;
    font-size: 14px;
    line-height: 24px;
    color: #666666;
  }
</style>

:::

通用类型

GeneralCallbackResult

名称类型必备默认值兼容性描述
errMsgstring-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -错误信息