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