nativescript-signalr-core
Nativescript Signalr-core / Signalr 2
npm i --save nativescript-signalr-core

Nativescript Signalr Core

NativeScript 中 signalr 核心的插件/所有代码均受 MIT 许可证许可

要求

此插件依赖于 NativeScript WebSockets 插件,感谢 [email protected] nativescript-websockets

安装

tns plugin add nativescript-websockets
npm install nativescript-signalr-core --save

Android

AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
<application android:usesCleartextTraffic="true">

如何使用 nativescript signalr core ?

main.tns.ts
    declare var require;
var WebSocket = require('nativescript-websockets');
Home.component.ts

在 NativeScript + Angular 7 中


import {Component, OnInit, NgZone, ChangeDetectorRef} from '@angular/core';
import { SignalrCore } from 'nativescript-signalr-core/angular';

@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss'],
})
export class HomeComponent implements OnInit {
header: SignalRCoreRHeaders;

constructor(private zone: NgZone, private cd: ChangeDetectorRef) {
this.signalrCore = new SignalrCore();
this.header = new SignalRCoreRHeaders('Authorization', 'myToken'); //(this.header Optional)
this.signalrCore.on('connected', (data) => {
console.log('connected');
});

}
connectToServer() {
this.signalrCore.start('http://server.com/ChatHub', this.header).then((isConnected: boolean) => {
console.log('isConnected? ', isConnected);
});
}

invoke() {
this.signalrCore.invoke('initializeDeviceAsync', '');
}

stop() {
this.signalrCore.close().then((res) => {
console.log('closed...', res);
});
}

API

.start(url: string, header?: SignalRCoreRHeaders): Promise
.on(event: string, data: any) : args
.close()
.invoke(...args): (data, date)
.getStatus$(): observable<{id: number, name: string}>
.getStatus(): string<{id: number, name: string}>
SignalRCoreRHeaders = { key: string, value: string }