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

feat(streamer):add streaming for cast file #1165

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

irvingoujAtDevolution
Copy link
Contributor

@irvingoujAtDevolution irvingoujAtDevolution commented Dec 21, 2024

No description provided.

Copy link

Let maintainers know that an action is required on their side

  • Add the label release-required Please cut a new release (Devolutions Gateway, Devolutions Agent, Jetsocat, PowerShell module) when you request a maintainer to cut a new release (Devolutions Gateway, Devolutions Agent, Jetsocat, PowerShell module)

  • Add the label release-blocker Follow-up is required before cutting a new release if a follow-up is required before cutting a new release

  • Add the label publish-required Please publish libraries (`Devolutions.Gateway.Utils`, OpenAPI clients, etc) when you request a maintainer to publish libraries (Devolutions.Gateway.Utils, OpenAPI clients, etc.)

  • Add the label publish-blocker Follow-up is required before publishing libraries if a follow-up is required before publishing libraries

crates/streamer/Cargo.toml Outdated Show resolved Hide resolved
crates/streamer/Cargo.toml Outdated Show resolved Hide resolved
@irvingoujAtDevolution irvingoujAtDevolution force-pushed the experiment-live-stream-player branch from 1d48ec6 to 3b58eca Compare December 23, 2024 07:57
Copy link
Member

@CBenoit CBenoit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: The ultimate goal of streaming and shadowing is shared, but the code itself is completely decoupled. What about splitting into two crates?

I suggest these:

  • ascii-streamer
  • video-streamer or webm-streamer

I think it’s completely fine to remove the Signal trait and to use Arc<Notify> directly.

devolutions-gateway/src/streaming.rs Outdated Show resolved Hide resolved
webapp/player-project/package.json Outdated Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thought: Is it the result of building the NPM package? This should be an artifact that we don’t checkout in the git repository, but instead build when necessary (dev machine or CI).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, let me fix that in a separate PR, and I will rebase to that one.

crates/streamer/src/ascii_streamer.rs Outdated Show resolved Hide resolved
Comment on lines +9 to +12
pub trait AsciiStreamSocket {
fn send(&mut self, value: String) -> impl Future<Output = anyhow::Result<()>> + Send;
fn close(self);
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: Do you really need a new trait, or you could work with AsyncWrite? There is an adapter to get map a websocket into a AsyncRead + AsyncWrite object:

pub fn websocket_compat(ws: WebSocket) -> impl AsyncRead + AsyncWrite + Unpin + Send + 'static {

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The client need text specifically, if we send bytes it won't work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants