Send git-commit hash to client on reconnect to force client reload on backend update
This commit is contained in:
		
							parent
							
								
									3718ddf8f0
								
							
						
					
					
						commit
						3d575035a1
					
				@ -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