Skip to content
Snippets Groups Projects
Commit be4f7b50 authored by Cédric Moreau's avatar Cédric Moreau
Browse files

[fix] #1080 Broadcast only HEAD changes

parent 52f8012c
No related branches found
No related tags found
No related merge requests found
...@@ -10,6 +10,7 @@ import {TransactionBinding} from "./controllers/transactions" ...@@ -10,6 +10,7 @@ import {TransactionBinding} from "./controllers/transactions"
import {UDBinding} from "./controllers/uds" import {UDBinding} from "./controllers/uds"
import {PeerDTO} from "../../../lib/dto/PeerDTO" import {PeerDTO} from "../../../lib/dto/PeerDTO"
import {BlockDTO} from "../../../lib/dto/BlockDTO" import {BlockDTO} from "../../../lib/dto/BlockDTO"
import {OtherConstants} from "../../../lib/other_constants"
const co = require('co'); const co = require('co');
const es = require('event-stream'); const es = require('event-stream');
...@@ -132,16 +133,24 @@ export const bma = function(server:Server, interfaces:NetworkInterface[], httpLo ...@@ -132,16 +133,24 @@ export const bma = function(server:Server, interfaces:NetworkInterface[], httpLo
}); });
wssPeer.broadcast = (data:any) => wssPeer.clients.forEach((client:any) => client.send(data)); wssPeer.broadcast = (data:any) => wssPeer.clients.forEach((client:any) => client.send(data));
// Forward blocks & peers // Forward current HEAD change
server server
.pipe(es.mapSync(function(data:any) { .on('bcEvent', (e) => {
if (e.bcEvent === OtherConstants.BC_EVENT.HEAD_CHANGED || e.bcEvent === OtherConstants.BC_EVENT.SWITCHED) {
try { try {
// Broadcast block // Broadcast block
if (data.joiners) { currentBlock = e.block;
currentBlock = data;
const blockDTO:BlockDTO = BlockDTO.fromJSONObject(currentBlock) const blockDTO:BlockDTO = BlockDTO.fromJSONObject(currentBlock)
wssBlock.broadcast(JSON.stringify(block2HttpBlock(blockDTO))) wssBlock.broadcast(JSON.stringify(block2HttpBlock(blockDTO)))
} catch (e) {
logger && logger.error('error on ws mapSync:', e);
}
} }
})
// Forward peers documents
server
.pipe(es.mapSync(function(data:any) {
try {
// Broadcast peer // Broadcast peer
if (data.endpoints) { if (data.endpoints) {
const peerDTO = PeerDTO.fromJSONObject(data) const peerDTO = PeerDTO.fromJSONObject(data)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment