npm i --save @yoonit/nativescript-websocket
- 版本:1.1.3
- GitHub: https://github.com/Yoonit-Labs/nativescript-yoonit-websocket
- NPM: https://npmjs.net.cn/package/%40yoonit%2Fnativescript-websocket
- 下载次数
- 前一天: 0
- 上周: 0
- 上个月: 0
NativeScript Yoonit 摄像头
使用 NativeScript 和 WebSocket 在 Android 和 iOS 中构建现代应用程序
- 稳定的 WebSocket 连接
- 现代 JS 代码 (ESNext)
- 在模拟器和真实设备上运行
- 超时配置
- 自动重连
- 代理选项
- 自定义头信息
- VueJS 插件
安装
npm i -s @yoonit/nativescript-websocket
用法
所有由 @yoonit/nativescript-websocket
提供的功能都通过 YoonitWebSocket
对象访问。以下是我们提供的基本用法代码,更多详细信息,请参阅 方法 或 Vue 示例。
VueJS 插件
main.js
import Vue from 'nativescript-vue'
import YoonitWebSocket from '@yoonit/nativescript-websocket/vue'
Vue.use(
YoonitWebSocket,
'wss://echo.websocket.org/',
{
protocol: '',
timeout: 1000,
headers: [],
reconnect: true,
delay: 1000,
debug: false,
proxy: {
address: '',
port: ''
}
}
)
之后,您可以在整个项目中使用 this.$yoo.socket
访问 socket 对象
Angular、React、Svelte 或任何其他框架
目前我们无法提供除 VueJS 以外的其他框架集成,您可以自由创建并发送 PR 给我们。但这是一个纯 NativeScript 插件,如果您知道如何操作您喜欢的平台,您将能够将其包含到您的项目中。
Vue 组件
使用 Yoonit 样式声明事件
App.vue
<template>
<Page @loaded="doLoaded"></Page>
</template>
<script>
export default {
data: () => ({
interval: null
}),
methods: {
doLoaded () {
// start the connection
this.$yoo.socket.open()
},
doPing () {
this.interval = setInterval(() => {
if (!this.$yoo.socket.getStatus()) {
return console.log('[YooSocket] Socket closed')
}
console.log("[YooSocket] Sending 'echo' message!")
// add your message/file to queue and call 'send' method
return this.$yoo.socket.push('echo')
}, 2000)
}
},
yoo: {
socket: {
events: {
open ($socket) {
console.log("[YooSocket] Hey! I'm connected!")
clearInterval(this.interval)
return this.doPing()
},
message ($socket, message) {
if (!message) {
console.log("[YooSocket] Message is empty")
}
console.log(`[YooSocket] Received Message: '${message}'!`)
},
close () {
console.log("[YooSocket] Socket was closed")
},
error () {
console.log("[YooSocket] Socket had an error")
}
}
}
}
}
</script>
或使用您已创建的自定义方法声明事件
App.vue
<template>
<Page @loaded="doLoaded"></Page>
</template>
<script>
export default {
data: () => ({
interval: null
}),
methods: {
doLoaded () {
// start the connection
this.$yoo.socket.open()
// declare all callback events
this.$yoo.socket.events({
open: this.doSocketOpen,
message: this.doReceivedMessage,
close: this.doSocketClose,
error: this.doSocketError
})
},
doPing () {
this.interval = setInterval(() => {
if (!this.$yoo.socket.getStatus()) {
return console.log('[YooSocket] Socket closed')
}
console.log("[YooSocket] Sending 'echo' message!")
// add your message/file to queue and call 'send' method
return this.$yoo.socket.push('echo')
}, 2000)
},
doSocketOpen ($socket) {
console.log("[YooSocket] Hey! I'm connected!")
clearInterval(this.interval)
// onOpen event calls your function
return this.doPing()
},
doSocketClose () {
// onClose event
return console.log('[YooSocket] Socket was closed')
},
doSocketError () {
// onError event
return console.log('[YooSocket] Socket had an error')
},
doReceivedMessage ($socket, message) {
// onMessage event
return console.log(`[YooSocket] Received Message: '${message}'!`)
},
}
}
</script>
API
方法
函数 | 参数 | 有效值 | 返回类型 | 描述 |
---|---|---|---|---|
openAsync |
timeout | 任何正数,默认 1000 (ms) | void | 等待 timeout 开始连接 |
open |
- | - | void | 立即开始连接 |
on |
事件,回调 | string,function | void | 包含一个事件,每当服务器发送此类型的事件时,您的回调将被调用 |
off |
事件,回调 | string,function | void | 排除一个事件 |
事件 |
回调 | 对象,包含函数 { open: [], close: [], message: [], error: [], fragment: [], handshake: [] } |
void | 您可以在每个事件中使用 Array 的回调。使用此方法一次添加多个事件 |
getStatus |
- | - | boolean | 您可以使用此方法检查连接状态 |
push |
content | string/blob | void | 向服务器发送文件或字符串。您可以使用此方法进行上传等操作 |
destroy |
- | - | void | 销毁服务器连接 |
close |
code,message | number,string | void | 程序化地关闭服务器连接并提供原因 |
queueLength |
- | - | number | 获取待发送的总挂起项数 |
isOpen |
- | - | boolean | 获取连接状态 |
isClosed |
- | - | boolean | 获取连接状态 |
isClosing |
- | - | boolean | 获取连接状态 |
isConnecting |
- | - | boolean | 获取连接状态 |
属性
属性 | 返回类型 |
---|---|
protocol |
string |
timeout |
number |
headers |
array |
reconnect |
boolean |
delay |
number |
debug |
boolean |
proxy |
object |
回调 |
object |
url |
string |
opened |
boolean |
参与贡献并使其变得更好
克隆仓库,修改您需要的内容并提交PR。对于提交信息,我们使用常规提交规范。
贡献总是受欢迎的!
由Yoonit团队用❤编写代码