mirror of
https://github.com/mempool/mempool.git
synced 2025-03-26 17:51:45 +01:00
Send git-commit hash to client on reconnect to force client reload on backend update
This commit is contained in:
parent
943d96ee8c
commit
c9b161423d
@ -1,4 +1,5 @@
|
||||
import * as WebSocket from 'ws';
|
||||
import * as fs from 'fs';
|
||||
import { Block, TransactionExtended, Statistic } from '../interfaces';
|
||||
import blocks from './blocks';
|
||||
import memPool from './mempool';
|
||||
@ -7,8 +8,19 @@ import fiatConversion from './fiat-conversion';
|
||||
|
||||
class WebsocketHandler {
|
||||
private wss: WebSocket.Server | undefined;
|
||||
private latestGitCommitHash = '';
|
||||
|
||||
constructor() { }
|
||||
constructor() {
|
||||
this.setLatestGitCommit();
|
||||
}
|
||||
|
||||
setLatestGitCommit() {
|
||||
try {
|
||||
this.latestGitCommitHash = fs.readFileSync('../.git/refs/heads/master').toString().trim();
|
||||
} catch (e) {
|
||||
console.log('Could not load git commit info, skipping.');
|
||||
}
|
||||
}
|
||||
|
||||
setWebsocketServer(wss: WebSocket.Server) {
|
||||
this.wss = wss;
|
||||
@ -59,6 +71,7 @@ class WebsocketHandler {
|
||||
'blocks': _blocks,
|
||||
'conversions': fiatConversion.getTickers()['BTCUSD'],
|
||||
'mempool-blocks': mempoolBlocks.getMempoolBlocks(),
|
||||
'git-commit': this.latestGitCommitHash
|
||||
}));
|
||||
}
|
||||
} catch (e) {
|
||||
|
@ -17,6 +17,7 @@ export class WebsocketService {
|
||||
private lastWant: string[] | null = null;
|
||||
private trackingTxId: string | null = null;
|
||||
private trackingAddress: string | null = null;
|
||||
private latestGitCommit = '';
|
||||
|
||||
constructor(
|
||||
private stateService: StateService,
|
||||
@ -58,6 +59,18 @@ export class WebsocketService {
|
||||
this.stateService.mempoolBlocks$.next(response['mempool-blocks']);
|
||||
}
|
||||
|
||||
if (response['git-commit']) {
|
||||
if (!this.latestGitCommit) {
|
||||
this.latestGitCommit = response['git-commit'];
|
||||
} else {
|
||||
if (this.latestGitCommit !== response['git-commit']) {
|
||||
setTimeout(() => {
|
||||
window.location.reload();
|
||||
}, Math.floor(Math.random() * 60000) + 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (response['address-transactions']) {
|
||||
response['address-transactions'].forEach((addressTransaction: Transaction) => {
|
||||
this.stateService.mempoolTransactions$.next(addressTransaction);
|
||||
|
Loading…
x
Reference in New Issue
Block a user