package id_generator import "sync" type WebsocketId struct { nodeId uint64 count uint64 mu sync.Mutex } func (wid *WebsocketId) Get() uint64 { wid.mu.Lock() defer wid.mu.Unlock() wid.count++ return (wid.count << 8) | wid.nodeId } func NewWebsocketId(NodeId uint8) *WebsocketId { return &WebsocketId{ nodeId: uint64(NodeId), count: 0, } }