Skip to content
Snippets Groups Projects
Commit b8ae36a6 authored by Levente Pap's avatar Levente Pap
Browse files

Merge branch 'develop' into refactor/message_structure

parents c57d358b bbc81bdd
No related branches found
No related tags found
No related merge requests found
......@@ -134,14 +134,10 @@ func configure(_ *node.Plugin) {
tipManager = TipManager()
valueObjectFactory = ValueObjectFactory()
_tangle.Events.PayloadLiked.Attach(events.NewClosure(func(cachedPayloadEvent *valuetangle.CachedPayloadEvent) {
_tangle.Events.PayloadConfirmed.Attach(events.NewClosure(func(cachedPayloadEvent *valuetangle.CachedPayloadEvent) {
cachedPayloadEvent.PayloadMetadata.Release()
cachedPayloadEvent.Payload.Consume(tipManager.AddTip)
}))
_tangle.Events.PayloadDisliked.Attach(events.NewClosure(func(cachedPayloadEvent *valuetangle.CachedPayloadEvent) {
cachedPayloadEvent.PayloadMetadata.Release()
cachedPayloadEvent.Payload.Consume(tipManager.RemoveTip)
}))
// configure FCOB consensus rules
cfgAvgNetworkDelay := config.Node().Int(CfgValueLayerFCOBAverageNetworkDelay)
......
......
......@@ -207,10 +207,17 @@ export class NodeStore {
this.collected_tips_metrics = [];
}
reconnect() {
this.updateWebSocketConnected(false);
setTimeout(() => {
this.connect();
}, 5000);
}
connect() {
connectWebSocket(statusWebSocketPath,
() => this.updateWebSocketConnected(true),
() => this.updateWebSocketConnected(false),
() => this.reconnect(),
() => this.updateWebSocketConnected(false))
}
......
......
......@@ -23,7 +23,7 @@ var (
webSocketWriteTimeout = time.Duration(3) * time.Second
// clients
wsClientsMu sync.Mutex
wsClientsMu sync.RWMutex
wsClients = make(map[uint64]*wsclient)
nextWsClientID uint64
......@@ -77,7 +77,7 @@ func registerWSClient() (uint64, *wsclient) {
defer wsClientsMu.Unlock()
clientID := nextWsClientID
wsClient := &wsclient{
channel: make(chan interface{}, 500),
channel: make(chan interface{}, 2000),
exit: make(chan struct{}),
}
wsClients[clientID] = wsClient
......@@ -87,18 +87,21 @@ func registerWSClient() (uint64, *wsclient) {
// removes the websocket client with the given id.
func removeWsClient(clientID uint64) {
wsClientsMu.Lock()
defer wsClientsMu.Unlock()
wsClientsMu.RLock()
wsClient := wsClients[clientID]
close(wsClient.exit)
close(wsClient.channel)
close(wsClient.exit)
wsClientsMu.RUnlock()
wsClientsMu.Lock()
defer wsClientsMu.Unlock()
delete(wsClients, clientID)
}
// broadcasts the given message to all connected websocket clients.
func broadcastWsMessage(msg interface{}, dontDrop ...bool) {
wsClientsMu.Lock()
defer wsClientsMu.Unlock()
wsClientsMu.RLock()
defer wsClientsMu.RUnlock()
for _, wsClient := range wsClients {
if len(dontDrop) > 0 {
select {
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment