我开发了一个点对点 wpf 应用程序,在其中我只是将我的视频广播给其他同行,但我也想同时看到他们的视频。目前我不知道如何将我的视频流传递给其他同行的机器,以便他们自己处理。我希望它是 p2p 视频会议。我希望一个对等点应该将其视频发送给其他对等点,同时它正在接收来自其他对等点的视频。
我应该使用什么方法?
同时处理多个客户端请求的线程?
让一个(或多个)线程处理您自己的视频以传输给会议中的其他参与者,同时让一个线程处理来自其他每个参与者的视频输入以显示到您自己的屏幕上,这似乎是非常合理的。任何用于控制布局等的杂散线程(因此,如果会议中有 N 人,则将有 1 个传输线程、N-1 个显示线程和一个控制器线程,以及其他看起来最合适的其他线程。)
例如,您可能有一个比其他视频源更大的视频源,并且控制器线程将用于允许您随时选择哪个是主要(放大的)视频源。
如果您使用 Java,请研究NIO和构建在 NIO 之上的库(例如 Netty)以限制线程的使用。这些可以比使用多个线程更有效地处理多个连接。