EventSource
EventSource is a Swift package that provides a simple implementation of a client for Server-Sent
Events (SSE). It allows you to easily
receive real-time updates from a server over a persistent HTTP connection, using a simple and efficient
interface.
It also leverages Swift concurrency features to provide a more expressive and intuitive way to handle asynchronous operations.
Note
Please note that this package was originally developed to be used in conjunction with another package,
and as such, it may not cover all specification details. Please be aware of this limitation when
evaluating whether EventSource is suitable for your specific use case.
Installation
The module name of the package is EventSource
. Choose one of the instructions below to install and add
the following import statement to your source code.
import EventSource
From Xcode menu: File
> Swift Packages
> Add Package Dependency
https://github.com/Recouse/EventSource
In your Package.swift
file, first add the following to the package dependencies
:
.package(url: "https://github.com/Recouse/EventSource.git"),
And then, include “EventSource” as a dependency for your target:
.target(name: "<target>", dependencies: [
.product(name: "EventSource", package: "EventSource"),
]),
Usage
Using EventSource is easy. Simply create an instance of EventSource with the URLReqh
uest of the SSE endpoint you want to connect to, and await for events:
import EventSource
...
let eventSource = EventSource(request: urlRequest)
eventSource.connect()
for await event in eventSource.events {
switch event {
case .open:
print("Connection was opened.")
case .error(let error):
print("Received an error:", error.localizedDescription)
case .message(let message):
print("Received a message", message.data ?? "")
case .closed:
print("Connection was closed.")
}
}
Use close()
to explicilty close the connection.
Compatibility
- macOS 10.15+
- iOS 13.0+
- tvOS 13.0+
- watchOS 6.0+
Dependencies
Contributing
Contributions to are always welcomed! If you’d like to contribute, please fork this repository and
submit a pull request with your changes.
License
EventSource is released under the MIT License. See LICENSE for more information.
EventSource
EventSource is a Swift package that provides a simple implementation of a client for Server-Sent Events (SSE). It allows you to easily receive real-time updates from a server over a persistent HTTP connection, using a simple and efficient interface.
It also leverages Swift concurrency features to provide a more expressive and intuitive way to handle asynchronous operations.
Installation
The module name of the package is
EventSource
. Choose one of the instructions below to install and add the following import statement to your source code.Xcode Package Dependency
From Xcode menu:
File
>Swift Packages
>Add Package Dependency
Swift Package Manager
In your
Package.swift
file, first add the following to the packagedependencies
:And then, include “EventSource” as a dependency for your target:
Usage
Using EventSource is easy. Simply create an instance of EventSource with the URLReqh uest of the SSE endpoint you want to connect to, and await for events:
Use
close()
to explicilty close the connection.Compatibility
Dependencies
Contributing
Contributions to are always welcomed! If you’d like to contribute, please fork this repository and submit a pull request with your changes.
License
EventSource is released under the MIT License. See LICENSE for more information.