1.0.1
This commit is contained in:
+13
-1
@@ -59,4 +59,16 @@ UDN.requestMailbox();
|
||||
## 1.0.6
|
||||
|
||||
- add error handling with `connect()`
|
||||
- add `onmailboxdelete` listener
|
||||
- add `onmailboxdelete` listener
|
||||
|
||||
## 1.0.7
|
||||
|
||||
- add `uuid` property to Message
|
||||
|
||||
## 1.0.8
|
||||
|
||||
- fix bug where messages would be considered sent even if the WebSocket is not ready
|
||||
|
||||
## 1.0.9
|
||||
|
||||
- send confirmation to server that a message was received, necessary for mailboxes to function safely
|
||||
+14
-7
@@ -1,4 +1,6 @@
|
||||
export interface Message {
|
||||
uuid?: string; // to be assigned by
|
||||
|
||||
// connecting to server
|
||||
requestingServerConnection?: boolean;
|
||||
|
||||
@@ -15,21 +17,24 @@ export interface Message {
|
||||
unsubscribeChannel?: string;
|
||||
subscribed?: boolean; // sent by server
|
||||
|
||||
//sending message
|
||||
// sending message
|
||||
messageChannel?: string;
|
||||
messageBody?: string;
|
||||
|
||||
// confirming message
|
||||
confirmingMessageReceived?: boolean;
|
||||
}
|
||||
|
||||
export default class UDNFrontend {
|
||||
ws: WebSocket | undefined;
|
||||
|
||||
// HANDLERS
|
||||
private connectionHandler = () => {};
|
||||
private disconnectionHandler = () => {};
|
||||
private messageHandler = (data: Message) => {};
|
||||
private mailboxHandler = (mailboxId: string) => {};
|
||||
private mailboxConnectionHandler = (mailboxId: string) => {};
|
||||
private mailboxDeleteHandler = (mailboxId: string) => {};
|
||||
private connectionHandler = () => { };
|
||||
private disconnectionHandler = () => { };
|
||||
private messageHandler = (data: Message) => { };
|
||||
private mailboxHandler = (mailboxId: string) => { };
|
||||
private mailboxConnectionHandler = (mailboxId: string) => { };
|
||||
private mailboxDeleteHandler = (mailboxId: string) => { };
|
||||
|
||||
// INIT
|
||||
set onconnect(handler: () => void) {
|
||||
@@ -54,6 +59,7 @@ export default class UDNFrontend {
|
||||
// UTILITY METHODS
|
||||
private send(messageObject: Message): boolean {
|
||||
if (this.ws == undefined) return false;
|
||||
if (this.ws.readyState != 1) return false;
|
||||
|
||||
const messageString = JSON.stringify(messageObject);
|
||||
this.ws.send(messageString);
|
||||
@@ -80,6 +86,7 @@ export default class UDNFrontend {
|
||||
} else if (data.deletedMailbox) {
|
||||
return this.mailboxDeleteHandler(data.deletedMailbox);
|
||||
} else {
|
||||
this.send({ uuid: data.uuid, confirmingMessageReceived: true });
|
||||
this.messageHandler(data);
|
||||
}
|
||||
});
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "udn-frontend",
|
||||
"version": "1.0.6",
|
||||
"version": "1.0.9",
|
||||
"description": "TypeScript library for UDN apps",
|
||||
"main": "index.ts",
|
||||
"scripts": {
|
||||
|
||||
Reference in New Issue
Block a user