TCPSocket.offConnect(function listener)

微信小程序插件:不支持

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

相关文档: 网络使用说明

功能描述

移除当一个 socket 连接成功建立的时候触发该事件的监听函数

参数

function listener

onConnect 传入的监听函数。不传此参数则移除所有监听函数。

示例代码

const listener = function (res) { console.log(res) }

TCPSocket.onConnect(listener)
TCPSocket.offConnect(listener) // 需传入与监听时同一个的函数对象

动画曲线

在 Skyline 下,部分滚动容器和上下文接口的动画,可通过 easingFunction 字段指定动画曲线,如 ScrollViewContext.triggerTwoLevel、DraggableSheetContext.scrollTo 等。该字段接收一段字符串(字符串字面量,如 'ease'),取值可分为三类。

内置曲线

easingFunction 可传入下表所示的取值,框架会在动画期间按对应曲线的进度驱动动画。

取值 说明 等价贝塞尔参数
linear 匀速运动 –
ease 先加速后减速,默认取值 cubic-bezier(0.25, 0.1, 0.25, 1)
easeIn 加速进入 cubic-bezier(0.42, 0, 1, 1)
easeOut 减速离开 cubic-bezier(0, 0, 0.58, 1)
easeInOut 前半程加速、后半程减速 cubic-bezier(0.42, 0, 0.58, 1)
fastOutSlowIn 快速进入后缓慢收尾,Material 风格 cubic-bezier(0.4, 0, 0.2, 1)
slowMiddle 中部缓慢,首尾较快 cubic-bezier(0.15, 0.85, 0.85, 0.15)
fastLinearToSlowEaseIn 起始接近线性,随后缓慢减速 cubic-bezier(0.18, 1, 0.04, 1)
easeInToLinear 缓慢加速后转为线性 cubic-bezier(0.67, 0.03, 0.65, 0.09)
linearToEaseOut 起始线性后缓慢减速 cubic-bezier(0.35, 0.91, 0.33, 0.97)
easeInSine 正弦缓入,温和加速 cubic-bezier(0.47, 0, 0.745, 0.715)
easeOutSine 正弦缓出,温和减速 cubic-bezier(0.39, 0.575, 0.565, 1)
easeInOutSine 正弦缓入缓出 cubic-bezier(0.445, 0.05, 0.55, 0.95)
easeInQuad 平方缓入 cubic-bezier(0.55, 0.085, 0.68, 0.53)
easeOutQuad 平方缓出 cubic-bezier(0.25, 0.46, 0.45, 0.94)
easeInOutQuad 平方缓入缓出 cubic-bezier(0.455, 0.03, 0.515, 0.955)
easeInCubic 立方缓入 cubic-bezier(0.55, 0.055, 0.675, 0.19)
easeOutCubic 立方缓出 cubic-bezier(0.215, 0.61, 0.355, 1)
easeInOutCubic 立方缓入缓出 cubic-bezier(0.645, 0.045, 0.355, 1)
easeInQuart 四次方缓入 cubic-bezier(0.895, 0.03, 0.685, 0.22)
easeOutQuart 四次方缓出 cubic-bezier(0.165, 0.84, 0.44, 1)
easeInOutQuart 四次方缓入缓出 cubic-bezier(0.77, 0, 0.175, 1)
easeInQuint 五次方缓入 cubic-bezier(0.755, 0.05, 0.855, 0.06)
easeOutQuint 五次方缓出 cubic-bezier(0.23, 1, 0.32, 1)
easeInOutQuint 五次方缓入缓出 cubic-bezier(0.86, 0, 0.07, 1)
easeInExpo 指数缓入,起始极慢后急剧加速 cubic-bezier(0.95, 0.05, 0.795, 0.035)
easeOutExpo 指数缓出,急剧减速后趋于平缓 cubic-bezier(0.19, 1, 0.22, 1)
easeInOutExpo 指数缓入缓出 cubic-bezier(1, 0, 0, 1)
easeInCirc 圆形缓入 cubic-bezier(0.6, 0.04, 0.98, 0.335)
easeOutCirc 圆形缓出 cubic-bezier(0.075, 0.82, 0.165, 1)
easeInOutCirc 圆形缓入缓出 cubic-bezier(0.785, 0.135, 0.15, 0.86)
easeInBack 缓入并越过起点少许再回正(有过冲) cubic-bezier(0.6, -0.28, 0.735, 0.045)
easeOutBack 缓出并越过终点少许再回正(有过冲) cubic-bezier(0.175, 0.885, 0.32, 1.275)
easeInOutBack 首尾均有少量过冲 cubic-bezier(0.68, -0.55, 0.265, 1.55)

弹性与反弹曲线

取值 说明
elasticIn / easeInElastic 弹性缓入,起始反向摆动后冲向终点
elasticOut / easeOutElastic 弹性缓出,临近终点来回摆动并衰减
elasticInOut / easeInOutElastic 首尾均有弹性摆动
bounceIn / easeInBounce 反弹缓入,从下方多次弹跳进入
bounceOut / easeOutBounce 反弹缓出,落地式多次弹跳衰减
bounceInOut / easeInOutBounce 首尾均有反弹效果

弹性曲线按弹簧运动计算,反弹曲线按分段弹跳函数计算,均可在到达终点附近时产生回弹的视觉效果,适合强调类动画。

自定义贝塞尔曲线

easingFunction 支持直接传入一条三次贝塞尔曲线,写法形如 cubic-bezier(x1, y1, x2, y2)。

其中 x1、y1、x2、y2 为四个数值,例如 cubic-bezier(0.25, 0.1, 0.25, 1)。

  • x1、x2 为控制点横坐标,通常取值 [0, 1],决定速度变化的时机
  • y1、y2 为控制点纵坐标,可超出 [0, 1],超出部分会产生过冲(回弹)效果
  • 数值支持小数、整数、负数,各参数间用英文逗号分隔,逗号前后可有空格,如 cubic-bezier(0.68, -0.55, 0.265, 1.55) 即内置 easeInOutBack 的曲线

可将 easingFunction 设为上述字符串写法后,通过调整动画时长与目标位置直观对比不同曲线的过渡效果。

TCPSocket.offClose(function listener)

微信小程序插件:不支持

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

相关文档: 网络使用说明

功能描述

移除当 socket 完全关闭时触发事件的监听函数

参数

function listener

通过 onClose 传入的监听函数。如果不传此参数,则移除所有监听函数。

示例代码

const listener = function (res) { console.log(res) }

TCPSocket.onClose(listener)
TCPSocket.offClose(listener) // 需传入与监听时同一个的函数对象

TCPSocket.offBindWifi(function listener)

基础库 2.25.0 开始支持,低版本需做兼容处理。

微信小程序插件:不支持

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

相关文档: 网络使用说明

功能描述

移除当一个 socket 绑定当前 wifi 网络成功时触发该事件的监听函数

参数

function listener

onBindWifi 传入的监听函数。不传此参数则移除所有监听函数。

示例代码

const listener = function (res) { console.log(res) }

TCPSocket.onBindWifi(listener)
TCPSocket.offBindWifi(listener) // 需传入与监听时同一个的函数对象

TCPSocket.connect(Object options)

微信小程序插件:不支持

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

相关文档: 网络使用说明

功能描述

在指定的套接字上启动连接

参数

Object options

属性 类型 默认值 必填 说明 最低版本
address string 是 套接字要连接的地址
port number 是 套接字要连接的端口
timeout number 2 否 套接字连接的超时时间,默认为 2 秒
enableHttpDNS boolean false 否 是否开启 HttpDNS 服务。如果开启,需要同时填入 httpDNSServiceId。HttpDNS 用法详见移动解析 HttpDNS 3.4.0
httpDNSServiceId string 否 HttpDNS 服务商 ID。HttpDNS 用法详见移动解析 HttpDNS 3.4.0

示例代码


  const tcp = wx.createTCPSocket()
  tcp.connect({address: '192.168.193.2', port: 8848})

TCPSocket.bindWifi(Object options)

基础库 2.25.0 开始支持,低版本需做兼容处理。

微信小程序插件:不支持

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

相关文档: 网络使用说明

功能描述

将 TCP Socket 绑定到当前 wifi 网络,成功后会触发 onBindWifi 事件(仅安卓支持)

参数

Object options

属性 类型 默认值 必填 说明
BSSID string 是 当前 wifi 网络的 BSSID ,可通过 wx.getConnectedWifi 获取

示例代码


  const tcp = wx.createTCPSocket()
  tcp.bindWifi({ BSSID: 'xxx' })
  tcp.onBindWifi(() => {})

TCPSocket

基础库 2.18.0 开始支持,低版本需做兼容处理。

相关文档: 网络使用说明

一个 TCP Socket 实例,默认使用 IPv4 协议

方法

TCPSocket.bindWifi(Object options)

将 TCP Socket 绑定到当前 wifi 网络,成功后会触发 onBindWifi 事件(仅安卓系统支持)

TCPSocket.connect(Object options)

在给定的套接字上启动连接

TCPSocket.write(string|ArrayBuffer data)

在 socket 上发送数据

TCPSocket.close()

关闭连接

TCPSocket.onClose(function listener)

监听 socket 完全关闭时触发的事件

TCPSocket.offClose(function listener)

移除 socket 完全关闭时触发的事件的监听函数

TCPSocket.onConnect(function listener)

监听 socket 连接成功建立时触发的事件

TCPSocket.offConnect(function listener)

移除 socket 连接成功建立时触发的事件的监听函数

TCPSocket.onError(function listener)

监听错误发生时触发的事件

TCPSocket.offError(function listener)

移除错误发生时触发的事件的监听函数

TCPSocket.onMessage(function listener)

监听接收到数据时触发的事件

TCPSocket.offMessage(function listener)

移除接收到数据时触发的事件的监听函数

TCPSocket.onBindWifi(function listener)

监听 socket 绑定当前 wifi 网络成功时触发的事件

TCPSocket.offBindWifi(function listener)

移除 socket 绑定当前 wifi 网络成功时触发的事件的监听函数

错误

错误码 错误信息 说明
-1 系统错误
-2 socket接口错误,可参考系统的socket错误码
-3 发送失败,无接口权限
-4 连接失败
1 发送失败,参数错误,address不合法
2 发送失败,参数错误,port不合法
3 绑定wifi网络失败,BSSID不合法
4 绑定wifi网络失败,系统错误
5 绑定wifi网络失败,该接口仅在安卓平台支持
6 绑定wifi网络失败,低版本安卓不支持该接口

注意

  • 当 errCode 为 -2 时,errMsg 里应该会有相应的 errno ,开发者可以根据 errno 到 linux 代码里的 errno-base.h 和 errno.h 中查看具体的报错信息。

TCPSocketwx.createTCPSocket(Object object)

基础库 2.18.0 开始支持,低版本需做兼容处理。

微信小程序插件:支持

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

相关文档: 网络使用说明

功能描述

创建一个 TCP Socket 实例。使用前请注意阅读相关说明。

参数

Object object

属性 类型 默认值 必填 说明 最低版本
type string ipv4 否 套接字族,必须是 IPv4 或者 IPv6,默认是 IPv4 3.6.4
合法值 说明
ipv4 IPv4
ipv6 IPv6

返回值

TCPSocket

一个 TCP Socket 实例

连接限制

  • 允许与局域网内的非本机 IP 通信
  • 允许与配置过的服务器域名通信,详见相关说明
  • 禁止与以下端口号连接:1024 以下 1099 1433 1521 1719 1720 1723 2049 2375 3128 3306 3389 3659 4045 5060 5061 5432 5984 6379 6000 6566 7001 7002 8000-8100 8443 8888 9200 9300 10051 10080 11211 27017 27018 27019
  • 每 5 分钟内最多创建 20 个 TCPSocket

wx.offLocalServiceDiscoveryStop(function listener)

基础库 2.4.0 开始支持,低版本需做兼容处理。

微信小程序插件:支持,需要微信小程序基础库版本不低于 2.15.0

相关文档: 局域网通信

功能描述

移除 mDNS 服务停止搜索的事件的监听函数

参数

function listener

onLocalServiceDiscoveryStop 传入的监听函数。不传此参数则移除所有监听函数。

示例代码

const listener = function (res) { console.log(res) }

wx.onLocalServiceDiscoveryStop(listener)
wx.offLocalServiceDiscoveryStop(listener) // 需传入与监听时同一个的函数对象