-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linux port using IBM's libraries #454
Conversation
This isn't really getting to linux support because |
@daltoniam I'm hitting a lot of roadblocks in this port. Can you help me? I'm stuck on an error about converting |
I decided to take the IBM's route and implement |
this is looking promising! I'll take it for a spin tomorrow |
Although I managed to get it to compile on Linux and the connection seems successful, it's unable to send or receive messages. I solved my problem using the WebSocketClient on https://github.com/vapor/engine instead, and I don't intend on moving forward with this port, so I'm closing this PR. If @wbarksdale or anyone else wants to continue this work, the code will be available at https://github.com/caiofbpa/starscream/tree/support-cryptor |
Related to #346
This should work on macOS, iOS and Linux. I couldn't manage to run Autobahn|Testsuite on it, though. Can someone help? Also I'm not sure how to test on other platforms like tvOS and watchOS.
I'm not sure replacing SSCommonCrypto (like I did) is the best approach. Would you rather have a
#if os(Linux)
around the Cryptor usage, keeping the old code on the#else
? Or maybe go for something a little more fancy like what was done inWSStream
to allow polymorphism? This polymorphic route is a bit bumpy because it could mean dynamic dependencies onPackage.json
andCartfile
or coming up with a plugin mechanism involving multiple repos.I personally like the idea of just using IBM's cross-platform libraries "everywhere" as the base while the Server Work Group (or Apple itself) doesn't come up with an official solution. For that we would have to make sure IBM's BlueCryptor (and later on BlueSocket) work on all targeted platforms.
I tried to add BlueCryptor to Cartfile, but apparently BlueCryptor does not support Carthage. Is that an impediment to using it in Starscream?