ProductPromotion
Logo

Go.Lang

made by https://0x3d.site

GitHub - lampctl/go-sse: Go package for sending and receiving SSE (server-sent events)
Go package for sending and receiving SSE (server-sent events) - lampctl/go-sse
Visit Site

GitHub - lampctl/go-sse: Go package for sending and receiving SSE (server-sent events)

GitHub - lampctl/go-sse: Go package for sending and receiving SSE (server-sent events)

go-sse

Build Status Coverage Status Go Report Card Go Reference MIT License

This package attempts to provide a robust and reliable implementation of server-sent events. One might use this package if they were writing an application that needed to connect to an SSE server endpoint and read events in a continuous stream or provide events to a front-end service.

Features

Here's what you get with this package:

  • Complete documentation for every last type and method in the package
  • Compliancy with section 9.2 of the WHATWG HTML specification
  • Extensive test suite to ensure conformance

go-sse requires a minimum of Go 1.18.

Basic Usage

To use the package in your application, begin by importing it:

import "github.com/lampctl/go-sse"

Use as a Client

Create a client using:

c, err := sse.NewClientFromURL("http://example.com/sse")
if err != nil {
    // ...
}

You can now read events directly from the c.Events channel as they are received:

for e := range c.Events {
    fmt.Println("Event received!")
    fmt.Println(e.Data)
}

Note that if the connection is closed or interrupted, the client will attempt to reconnect as per the spec and continue returning events from where it was interrupted. This is all handled behind the scenes and won't affect the status of the event channel.

When you are done receiving events, close the client:

c.Close()

Use as a Server

The server component is provided via Handler, which implements http.Handler:

h := sse.NewHandler(nil)

// ...or if you want to customize initialization:
h := sse.NewHandler(&sse.HandlerConfig{
    NumEventsToKeep:   10,
    ChannelBufferSize: 4,
})

To send an event, simply use the Send() method:

h.Send(&sse.Event{
    Type: "alert",
    Data: "The aliens are invading!",
    ID:   "12345",
})

When you are done, use the Close() method:

h.Close()

Articles
to learn more about the golang concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here ๐Ÿ”ฅ.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here ๐Ÿ”ฅ.

Queries
or most google FAQ's about GoLang.

mail [email protected] to add more queries here ๐Ÿ”.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory