Documentation
¶
Index ¶
- Constants
- Variables
- func GetListener(conn *websocket.Conn, req *http.Request) (w *ws.Listener)
- func New(s interfaces.Server, path string, sm *servemux.S)
- type A
- func (a *A) AuthRequiredResponse(env *reqenvelope.T, remote string, aut []byte, r reason.R) (notice []byte, err error)
- func (a *A) CheckDelete(c context.T, env *eventenvelope.Submission, sto store.I) (err error)
- func (a *A) CheckPrivilege(events event.Ts, f *filter.T, env *reqenvelope.T, srv interfaces.Server, ...) (evs event.Ts, notice []byte, err error)
- func (a *A) FilterPrivileged(c context.T, sto store.I, aut []byte, events event.Ts) (evs event.Ts)
- func (a *A) HandleAuth(b []byte, srv interfaces.Server) (msg []byte)
- func (a *A) HandleAuthPrivilege(env *reqenvelope.T, f *filter.T, aut []byte, remote string) (notice []byte, err error)
- func (a *A) HandleClose(req []byte, srv interfaces.Server) (note []byte)
- func (a *A) HandleEvent(c context.T, req []byte, srv interfaces.Server, remote string) (msg []byte)
- func (a *A) HandleMessage(msg []byte, remote string)
- func (a *A) HandleRejectEvent(env *eventenvelope.Submission, notice string) (err error)
- func (a *A) HandleReq(c context.T, req []byte, srv interfaces.Server, aut []byte, remote string) (r []byte)
- func (a *A) Pinger(ctx context.T, ticker *time.Ticker, cancel context.F, remote string)
- func (a *A) ProcessDelete(c context.T, target *event.T, env *eventenvelope.Submission, sto store.I) (skip bool, err error)
- func (a *A) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (a *A) VerifyEvent(env *eventenvelope.Submission) (err error)
- func (a *A) WriteEvents(events event.Ts, env *reqenvelope.T, i int) (err error)
- type Close
- type Map
- type OK
- type OKs
- type S
- type W
Constants ¶
View Source
const ( DefaultChallengeHRP = "nchal" DefaultChallengeLength = 16 )
View Source
const ( DefaultWriteWait = 10 * time.Second DefaultPongWait = 60 * time.Second DefaultPingWait = DefaultPongWait / 2 DefaultMaxMessageSize = 1 * units.Mb )
View Source
const Type = "socketapi"
Variables ¶
View Source
var (
NIP20prefixmatcher = regexp.MustCompile(`^\w+: `)
)
View Source
var Ok = OKs{ AuthRequired: func(a *A, env eid.Ider, format string, params ...any) (err error) { return okenvelope.NewFrom(env.Id(), false, reason.AuthRequired.F(format, params...)).Write(a.Listener) }, PoW: func(a *A, env eid.Ider, format string, params ...any) (err error) { return okenvelope.NewFrom(env.Id(), false, reason.PoW.F(format, params...)).Write(a.Listener) }, Duplicate: func(a *A, env eid.Ider, format string, params ...any) (err error) { return okenvelope.NewFrom(env.Id(), false, reason.Duplicate.F(format, params...)).Write(a.Listener) }, Blocked: func(a *A, env eid.Ider, format string, params ...any) (err error) { return okenvelope.NewFrom(env.Id(), false, reason.Blocked.F(format, params...)).Write(a.Listener) }, RateLimited: func(a *A, env eid.Ider, format string, params ...any) (err error) { return okenvelope.NewFrom(env.Id(), false, reason.RateLimited.F(format, params...)).Write(a.Listener) }, Invalid: func(a *A, env eid.Ider, format string, params ...any) (err error) { return okenvelope.NewFrom(env.Id(), false, reason.Invalid.F(format, params...)).Write(a.Listener) }, Error: func(a *A, env eid.Ider, format string, params ...any) (err error) { return okenvelope.NewFrom(env.Id(), false, reason.Error.F(format, params...)).Write(a.Listener) }, Unsupported: func(a *A, env eid.Ider, format string, params ...any) (err error) { return okenvelope.NewFrom(env.Id(), false, reason.Unsupported.F(format, params...)).Write(a.Listener) }, Restricted: func(a *A, env eid.Ider, format string, params ...any) (err error) { return okenvelope.NewFrom(env.Id(), false, reason.Restricted.F(format, params...)).Write(a.Listener) }, }
Functions ¶
func GetListener ¶
GetListener generates a new ws.Listener with a new challenge for a subscriber.
Types ¶
type A ¶
func (*A) AuthRequiredResponse ¶
func (*A) CheckDelete ¶
func (a *A) CheckDelete(c context.T, env *eventenvelope.Submission, sto store.I) (err error)
func (*A) CheckPrivilege ¶
func (*A) FilterPrivileged ¶
func (*A) HandleAuth ¶
func (a *A) HandleAuth(b []byte, srv interfaces.Server) (msg []byte)
func (*A) HandleAuthPrivilege ¶
func (*A) HandleClose ¶
func (a *A) HandleClose(req []byte, srv interfaces.Server) (note []byte)
func (*A) HandleEvent ¶
func (*A) HandleMessage ¶
func (*A) HandleRejectEvent ¶
func (a *A) HandleRejectEvent(env *eventenvelope.Submission, notice string) (err error)
func (*A) ProcessDelete ¶
func (*A) VerifyEvent ¶
func (a *A) VerifyEvent(env *eventenvelope.Submission) (err error)
func (*A) WriteEvents ¶
type S ¶
type S struct { // Mx is the mutex for the Map. Mx sync.Mutex // Map is the map of subscribers and subscriptions from the websocket api. Map }
func NewPublisher ¶
func NewPublisher() *S
Click to show internal directories.
Click to hide internal directories.