@ispsystem/websocket
Advanced tools
Comparing version 1.1.7 to 1.1.8-feature-websocket-min-messages.564
@@ -11,2 +11,3 @@ import { ConnectableObservable, Observable } from 'rxjs'; | ||
private reconnectDelay; | ||
private msgCountForSuccessConnect; | ||
/** | ||
@@ -92,4 +93,10 @@ * WebSocket | ||
readonly isDisconnected: boolean; | ||
constructor(reconnectCount?: number, reconnectDelay?: number); | ||
/** | ||
* | ||
* @param reconnectCount - количество попыток переподключения | ||
* @param reconnectDelay - задержка между переподключениями | ||
* @param msgCountForSuccessConnect - количество сообщений, что бы подключение считалось успешным | ||
*/ | ||
constructor(reconnectCount?: number, reconnectDelay?: number, msgCountForSuccessConnect?: number); | ||
/** | ||
* Сравнивает состояние с текущим | ||
@@ -96,0 +103,0 @@ * @param state состояние |
@@ -16,5 +16,12 @@ import { fromEvent, merge, of, Subject, throwError, timer, } from 'rxjs'; | ||
export class ISPWebsocket { | ||
constructor(reconnectCount = DEFAULT_RECONNECT_COUNT, reconnectDelay = DEFAULT_RECONNECT_DELAY_MS) { | ||
/** | ||
* | ||
* @param reconnectCount - количество попыток переподключения | ||
* @param reconnectDelay - задержка между переподключениями | ||
* @param msgCountForSuccessConnect - количество сообщений, что бы подключение считалось успешным | ||
*/ | ||
constructor(reconnectCount = DEFAULT_RECONNECT_COUNT, reconnectDelay = DEFAULT_RECONNECT_DELAY_MS, msgCountForSuccessConnect = 0) { | ||
this.reconnectCount = reconnectCount; | ||
this.reconnectDelay = reconnectDelay; | ||
this.msgCountForSuccessConnect = msgCountForSuccessConnect; | ||
/** | ||
@@ -112,4 +119,5 @@ * индекс попытки подключения после ошибки | ||
setListeners(ws) { | ||
let msgCount = 0; | ||
const connectSub = fromEvent(ws, WEBSOCKET_EVENT_OPEN) | ||
.pipe(tap(() => (this.connectIndex = 0), e => this.errorSubject.error(e))) | ||
.pipe(tap(() => !this.msgCountForSuccessConnect && (this.connectIndex = 0), e => this.errorSubject.error(e))) | ||
.subscribe(this.connectSubject); | ||
@@ -123,3 +131,10 @@ const disconnectSub = fromEvent(ws, WEBSOCKET_EVENT_CLOSE) | ||
const messageSub = fromEvent(ws, WEBSOCKET_EVENT_MESSAGE) | ||
.pipe(tap({ error: e => this.errorSubject.error(e) })) | ||
.pipe(tap(() => { | ||
if (this.msgCountForSuccessConnect) { | ||
msgCount++; | ||
if (this.msgCountForSuccessConnect <= msgCount) { | ||
this.connectIndex = 0; | ||
} | ||
} | ||
}, e => this.errorSubject.error(e))) | ||
.subscribe(this.messageSubject); | ||
@@ -174,3 +189,3 @@ this.removeListeners(); | ||
// ждем активного состояния сокета (когда подключится / переподключится) | ||
delayWhen(() => this.state$.pipe(filter(v => v))), tap(() => this.ws.send(data)), map(() => undefined)); | ||
delayWhen(() => this.state$.pipe(filter(Boolean))), tap(() => this.ws.send(data)), map(() => undefined)); | ||
} | ||
@@ -177,0 +192,0 @@ /** |
{ | ||
"name": "@ispsystem/websocket", | ||
"version": "1.1.7", | ||
"version": "1.1.8-feature-websocket-min-messages.564+395b09a2", | ||
"description": "Websocket wrapper", | ||
@@ -9,2 +9,3 @@ "main": "dist/index.js", | ||
"build": "npm run clean && tsc -p ./tsconfig.json", | ||
"test": "node ../../scripts/test.js", | ||
"clean": "rm -rf ./dist", | ||
@@ -31,5 +32,5 @@ "prepublishOnly": "npm run build" | ||
"rxjs": "^6.5.5", | ||
"typescript": "~3.2.4" | ||
"typescript": "~3.5.3" | ||
}, | ||
"gitHead": "e129528265aa3f409c4951a94dfa2531cfccd764" | ||
"gitHead": "395b09a2841fbebb81d7726c23ff40179ed0ffb3" | ||
} |
Sorry, the diff of this file is not supported yet
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
27441
19
406
2
2