nativescript-stomp-connector
您出色的 NativeScript 插件。
npm i --save nativescript-stomp-connector

:warning: 此插件正在建设中。

nativescript-stomp-connector

STOMP 协议的 Websocket 客户端连接器。

此插件使用 NaikSoftware/StompProtocolAndroid 用于 Android 和 WrathChaos/StompClientLib 用于 iOS。

#TODO

  • [ ] 迁移到 Nativescript 7;
  • [ ] 添加 Nativescript 核心示例;
  • [ ] 在此 README 中添加使用 spring boot 的服务示例仓库;
  • [ ] 在此 README 中添加故障排除;
  • [ ] 改进 API 文档;

安装

运行 nativescript 命令行工具安装此插件

tns plugin add nativescript-stomp-connector

用法

核心

正在建设中

TypeScript

在您的组件中导入 StompConnector

import { StompConnector, StompMessage } from 'nativescript-stomp-connector';

调用 Connnect

private _wsUrl = "ws://{your-server}:{port}/{path}/websocket";
public stompClient: StompConnector;

constructor(private _changeDetectorRef: ChangeDetectorRef) {
this.stompClient = new StompConnector();
}

public connect(): void {
this.stompClient.connect({
brokerURL: this._wsUrl,
onConnect: () => {
console.log(`==== CONNECTED ===`);
},
onReconnect: () => {
console.log(`==== RECONNECTED ===`);
},
onStompError: (error) => {
console.error(error);
},
onDisconnect: () => {
console.log(`==== DISCONNECTED ===`);
},
debug: (msg: string) => {
console.log(msg);
}
} as StompConfig);
}

断开连接

public disconnect(): void {
this.stompClient.disconnect();
}

订阅主题

public subscribeToTopic(): void {
this.stompClient.topic('/topic/broadcast', (response: StompMessage) => { console.dir(response); });
}

取消订阅主题

unsubscribeToTopic() {
this.stompClient.unsubscribe('/topic/broadcast', () => console.log("Unsubscribed successfully"));
}

发送消息

sendMessageAsObject() {
this.stompClient.send({
message: JSON.stringify({ content: this.messageContent }),
destination: '/app/greetings',
withHeaders: { "content-type": "application/json" }
}, () => { console.log('Message just sent!'); });
}

API

StompConnector

connect(config)

此函数将连接到您的 STOMP 代理并在完成后调用 onConnect 回调;

disconnect()

断开 STOMP 代理的连接;

isConnected()

如果代理已连接则返回 true;

topic(destination, successCallBack, failCallBack)

通过传递目的地和 successCallBack 作为必选参数来订阅主题。

unsubscribe(destination, successCallback)

通过目的地取消订阅主题。

send(request, successCallBack, failCallBack)

向 STOMP 代理发送消息;

StompConfiguration

属性 默认值 描述
brokerURL WebSocket URL。 必填
autoReconnect false 目前仅适用于 Android
reconnectDelay 5000 重新连接尝试之间的延迟(毫秒)
connectHeaders [key: string]: string; > 示例:{ 'content-type': 'application/json' }
onConnect() 函数 在 WebSocket 连接成功时调用的回调
onReconnect() 函数 在服务器自动重新连接时调用的回调。 目前仅适用于 Android
onDisconnect() 函数 在 WebSocket 断开连接时调用的回调
onStompError(error) 函数 在出现异常时调用
debug(msg) 函数 使用此方法可以获取更多日志

原生组件

Android iOS
NaikSoftware/StompProtocolAndroid WrathChaos/StompClientLib

作者

Daniel Borba, [email protected]

许可

Apache License 版本 2.0,2004 年 1 月