cagey-client-messenger
Advanced tools
Comparing version 0.0.5 to 0.0.6
@@ -53,3 +53,3 @@ 'use strict'; | ||
_sendQueue() { | ||
async _sendQueue() { | ||
if (!this._isConnected) { | ||
@@ -59,4 +59,4 @@ return; | ||
for (const [type, message] of this._queue) { | ||
this._send(type, message); | ||
for (const serialized of this._queue) { | ||
await this._send(serialized); | ||
} | ||
@@ -67,5 +67,13 @@ | ||
send(...args) { // eg: eventName, message | ||
const serialized = this._serialize(...args); | ||
prepare(...args) { | ||
try { | ||
return this._serialize(...args); | ||
} catch (error) { | ||
this.log.error({ error }, '[client-messenger] error serializing message'); | ||
} | ||
return undefined; | ||
} | ||
async sendPrepared(serialized) { | ||
if (this._isConnected) { | ||
@@ -76,3 +84,3 @@ assert(this._queue.length === 0); | ||
this._send(serialized); | ||
await this._send(serialized); | ||
} else { | ||
@@ -85,17 +93,31 @@ this.log.debug('[client-messenger] queueing message: %s', serialized); | ||
trySend(...args) { | ||
async trySendPrepared(serialized) { | ||
if (this._isConnected) { | ||
assert(this._queue.length === 0); | ||
let serialized; | ||
this.log.debug('[client-messenger] sending message: %s', serialized); | ||
await this._send(serialized); | ||
} else { | ||
this.log.debug('[client-messenger] dropping message'); | ||
} | ||
} | ||
try { | ||
serialized = this._serialize(...args); | ||
} catch (error) { | ||
this.log.error({ error }, '[client-messenger] error serializing and sending message'); | ||
return; | ||
async send(...args) { // eg: eventName, message | ||
const serialized = this.prepare(...args); | ||
if (serialized !== undefined) { | ||
await this.sendPrepared(serialized); | ||
} | ||
} | ||
async trySend(...args) { | ||
if (this._isConnected) { | ||
assert(this._queue.length === 0); | ||
const serialized = this.prepare(...args); | ||
if (serialized !== undefined) { | ||
this.log.debug('[client-messenger] sending message: %s', serialized); | ||
await this._send(serialized); | ||
} | ||
this.log.debug('[client-messenger] sending message: %s', serialized); | ||
this._send(serialized); | ||
} else { | ||
@@ -114,3 +136,3 @@ this.log.debug('[client-messenger] dropping message'); | ||
} catch (error) { | ||
this.log.error({ error, serialized }, '[client-messenger] error deserializing and emitting message'); | ||
this.log.error({ error, serialized }, '[client-messenger] error deserializing message'); | ||
return; | ||
@@ -117,0 +139,0 @@ } |
{ | ||
"name": "cagey-client-messenger", | ||
"version": "0.0.5", | ||
"version": "0.0.6", | ||
"description": "Client/server messaging for the Cagey game framework", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
5123
108