nativeScript-socketio
Socket.IO for nativescript
npm i --save nativescript-socketio

npm npm Build Status

nativeScript-socketio

使用

npm install nativescript-socketio

tns plugin add nativescript-socketio

NativeScript 核心库

设置连接字符串和选项然后连接

var SocketIO = require('nativescript-socketio').SocketIO; 
var socketIO = new SocketIO(url, opts);

或者

import { SocketIO } from 'nativescript-socketio';
var socketIO = new SocketIO(url, opts);

连接到服务器

socketIO.connect()

向服务器发送数据

socketIO.emit(event,data)

监听数据

socketIO.on(event,callback)

设置实例

new SocketIO(null,null,oldInstance)

Angular

// app.module.ts
import { SocketIOModule } from "nativescript-socketio/angular";

@NgModule({
imports: [
SocketIOModule.forRoot(server),
]
})
// app.component.ts
import { Component, OnInit, OnDestroy } from "@angular/core";
import { SocketIO } from "nativescript-socketio";

@Component({
// ...
})
export class AppComponent implements OnInit, OnDestroy {
constructor(private socketIO: SocketIO) { }

ngOnInit() {
this.socketIO.connect();
}

ngOnDestroy() {
this.socketIO.disconnect();
}
}
// test.component.ts
import { Component, OnInit, NgZone } from "@angular/core";
import { SocketIO } from "nativescript-socketio";

@Component({
// ...
})
export class TestComponent implements OnInit {
constructor(
private socketIO: SocketIO,
private ngZone: NgZone
) { }

ngOnInit() {
this.socketIO.on("test", data => {
this.ngZone.run(() => {
// Do stuff here
});
});
}

test() {
this.socketIO.emit("test", { test: "test" });
}
}

运行演示

启动 socketio 服务器

cd demo/demo-server
npm install
node app

API

方法 默认 类型 描述
constructor(url) void 使用 url 创建一个 SocketIO 实例
constructor(url, options:{}) void 使用 url 和选项创建一个 SocketIO 实例
constructor(null,null,nativeSocket) void 从本地套接字实例创建一个 SocketIO 实例
connect() void 连接到服务器。
disconnect() void 断开套接字连接。
connected() boolean 检查套接字是否已连接
on(event: string,(data: Object , ack? : Function)) Function 添加客户端事件的处理器。返回一个函数来移除处理器。
once(event: string,(data: Object , ack? : Function)) Function 添加单次使用的客户端事件处理器。返回一个函数来移除处理器。
off(event: string) void 根据事件名称移除处理器。
emit(event: string,data: {},ack?: Function) void 向服务器发送事件,可选地携带数据项。
joinNamespace(name: string) SocketIO 返回带有命名空间的 SocketIO 实例
leaveNamespace() void 当您希望离开一个命名空间并断开此套接字连接时调用

示例图片

socketio