gpt4 book ai didi

java - 我需要为聊天客户端分配多少个线程?

转载 作者:行者123 更新时间:2023-11-30 11:34:10 25 4
gpt4 key购买 nike

我正在创建一个聊天客户端,允许用户使用他们的网络摄像头并发送他们的视频。这是一个基于局域网的软件。不会有语音聊天,只有视频和文字。

此外,除了群聊之外,还可以进行一对一的聊天,允许用户使用网络摄像头。 session 聊天中没有网络摄像头。还将有文件共享。

  • 假设一次允许的最大用户数为 100,我总共需要分配多少个线程?
  • 如何管理端口?我的意思是,分配、取消分配等
  • 我最初的猜测是,我将需要一个线程在客户端和服务器之间用于 session 文本聊天,1 个线程用于一对一文本聊天,每个启动网络摄像头的用户 1 个线程。每个一对一聊天有 1 个线程用于文件共享,n 线程用于 session 中的文件共享,其中 n 是一次连接的用户数

    最佳答案

    假设您使用 java 实现客户端,您可以为每个用户使用一个线程进行群聊,并为每个一对一连接使用一个线程,如果您想要 p2p 连接(为了安全,您可以通过服务器进行初始握手原因,然后以 p2p 模式进行)。

    如果您打算使用 websocket 和 web 客户端,则不能使用 p2p,因为浏览器只能启动 websocket 连接,而不能接受。要为每个客户端使用一个 channel ,您可以为传出数据包标记内容类型并对其进行适当解码。这个方案很容易在 netty 中实现,您可以在 netty 中将协议(protocol)实现放在 TCP\IP 套接字之上。此外,由于 netty 是异步的,您可以通过 NIO 获得一些速度改进

    关于java - 我需要为聊天客户端分配多少个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15789134/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com