GetStream / stream-swift

Swift client for Stream API
https://getstream.io
BSD 3-Clause "New" or "Revised" License
35 stars 26 forks source link

Fix broken and uncompilable GetStream with starscream 4.0.x #48

Closed mohamadrezakoohkan closed 1 year ago

mohamadrezakoohkan commented 1 year ago

Submit a pull request

This pull request addresses an issue, where it has become non-functional due to recent changes in the Starscream library. Specifically, the Starscream library's 4.0.x (4.0.5 & 4.0.6) version update introduced a new enum case called case peerClosed in WebSocketEvent enum class (details here) and has broken the conformance of the Client object to the WebSocketDelegate protocol, leaving the project uncompilable.

Build Error Encountered:

-> Type 'Client' does not conform to protocol 'WebSocketDelegate' -> Switch must be exhaustive

A screenshot of the encountered error is shown below:

Screenshot 2023-08-21 at 15 04 33

The issue originates from the fact that GetStream has been set up to track the latest changes to the major version of Starscream through its Package.swift file: Package.swift

The proposed solution in this pull request involves incorporating the new WebSocketEvent.peerClosed enum case and updating the delegate method inputs to receive an abstraction of WebSocket, consistent with the WebSocketClient definition.

The resolved state without errors is depicted in the screenshot below:

Screenshot 2023-08-21 at 15 40 54

CLA

polqf commented 1 year ago

Hi @mohamadrezakoohkan,

It is unfortunate that Starscream has added a breaking change in a patch release 😞 , but we are going to proceed with merging this PR so it not an issue anymore.

Thank you for you contribution!