Skip to content
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

Transport: C++ WebSocket client #56

Open
ibgreen opened this issue Mar 21, 2020 · 2 comments
Open

Transport: C++ WebSocket client #56

ibgreen opened this issue Mar 21, 2020 · 2 comments
Labels
enhancement New feature or request

Comments

@ibgreen
Copy link
Contributor

ibgreen commented Mar 21, 2020

  • Add ability for deck.gl-native C++ code to listen deckl.gl JSON style messages arriving over a WebSocket.
  • A simple web socket server (could be Node.js based)
  • Boost.Beast and Networking TS: https://www.youtube.com/watch?v=7FQwAjELMek
@isaacbrodsky
Copy link
Contributor

When you say WebSocket, are you intending to use that just because it is a convenient transport protocol? Is there something specific you envision on the other end of it that would indicate WebSockets?

Other options could be:

  • Native application listens for HTTP POST requests (possibly easy but sacrifices server push channel)
  • Read stdin or other file stream (easy to script but less useful)
  • Raw JSON-over-TCP (hard because clients are all 100% custom) or UDP (still 100% custom + hard because of fragmentation issue)

@ibgreen
Copy link
Contributor Author

ibgreen commented Mar 23, 2020

Yes good question. Not all use cases are clear yet, but this is part of the "transport protocol" vision, as one of the main ways to hold together a growing family of deck.gl clients and renderers.

I was thinking that we would make one implementation of the transport API that is web socket based, and we would be able to interchange the web client and the native client against a common server.

But we could certainly support other transport implementations. We need "full duplex" for full functionality (back-channel for events, rendered textures etc), but we could still do half-duplex (i.e HTTP) implementations with limited functionality.

@ilijapuaca ilijapuaca added the enhancement New feature or request label Jun 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants