You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Robust events for Go. It takes 0.1 seconds to send/receive 1 Million events.
Install
gogetgithub.com/codemodify/systemkit-events
API
On(event, handler, callOnce)
Subscribe
OnWithData(event, handler, callOnce)
Subscribe with payload
Off(event, handlerRef)
Unsubscribe
OffWithData(event, handlerRef)
Unsubscribe with payload
Emit(event)
Emit
EmitWithData(event, data)
Emit with payload
Usage: Subscribe + Notify
package main
import (
events "github.com/codemodify/systemkit-events"
)
funcmain() {
events.Events().On("PING", func() {
// FIMXE: will be called
})
events.Events().Emit("PING")
}
Usage: Subscribe (data) + Notify (data)
package main
import (
events "github.com/codemodify/systemkit-events"
)
funcmain() {
events.Events().OnWithData("PING", func(data []byte) {
// FIMXE: will be called
})
events.Events().EmitWithData("PING", []byte("PING-DATA"))
}
Usage: Subscribe (yes-no-data) + Notify (data)
package main
import (
events "github.com/codemodify/systemkit-events"
)
funcmain() {
events.Events().OnWithData("PING", func(data []byte) {
// FIMXE: will be called
})
events.Events().On("PING", func() {
// FIMXE: will be called
})
events.Events().EmitWithData("PING", []byte("PING-DATA"))
}
Usage: Subscribe (yes-no-data) + Notify
package main
import (
events "github.com/codemodify/systemkit-events"
)
funcmain() {
events.Events().OnWithData("PING", func(data []byte) {
// FIMXE: will be called, data will be nil
})
events.Events().On("PING", func() {
// FIMXE: will be called
})
events.Events().Emit("PING")
}
Usage: Subscribe Once + Notify
package main
import (
events "github.com/codemodify/systemkit-events"
)
funcmain() {
handler1CallOnce:=trueevents.Events().On("PING", func() {
// FIMXE: will be called ONCE
}, handler1CallOnce)
handler3CallOnce:=falseevents.Events().On("PING", func() {
// FIMXE: will be called UNTIL "events.Events().Off()" is called
}, handler3CallOnce)
events.Events().Emit("PING")
}