Skip to content

Repository files navigation

AsyncWebSocketClient

badge-platformsbadge-spm

This is a package that contains a client behaving as an async wrapper for the URLSessionWebSocketTask provided by Apple.

Usage

letclient=AsyncWebSocketClient(url:URL(string:"ws://localhost:8765/")!)tryawait client.connect()tryawait client.send(.string("Hello world!")) // Either raw data or strings can be sent
letstream=await client.listenStream() // Returns an AsyncStream of events
forawaiteventin stream {print(event) // Print events such as data received, connection opened, connection closed
}

Advanced usage

You can also send encodable objects to the client:

structMyEncodableObject:Encodable,Sendable{lettitle:String}letobjectToEncode=MyEncodableObject(title:"Title")tryawait client.sendJSONData(objectToEncode)

How to test

AsyncWebSocketClient conforms to AsyncWebSocketClientProtocol and it is recommended to use dependency injection to make testing easier. For convenience, this library also includes a mock target AsyncWebSocketClientMocks which you can use if you just need a simple mock. You could optionally add your own mock class conforming to AsyncWebSocketClientProtocol.

Installation

Swift Package Manager

In Xcode, select File --> Swift Packages --> Add Package Dependency and then add the following url:

https://github.com/Henryforce/AsyncWebSocketClient

About

A simple client behaving as a wrapper for the URLSessionWebSocketTask class

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages