socketio / socket.io-client-swift

Other
5.21k stars 839 forks source link

Binary data in base64 encoding (Polling) is not padded, causing compatibility issue with other SocketIO clients/servers #1496

Open fhfuih opened 2 months ago

fhfuih commented 2 months ago

This is actually not this library's fault: swift's built in base64EncodedString function does not right-pad the base 64 string (which is standard), and this leads to several compatibility issues not only for socketIO (An example StackOverflow issue).

I use Swift's socketIO as the client and a python socketIO server. The python base64 library strictly follows the standard, so it throws an error at Swift SocketIO's base64 message. This is my original discussion thread under the python socketIO repo and the author's reply.

Therefore, I think the Swift SocketIO library can manually add right padding after calling the built-in base64EncodedString function.