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

时间:2013-04-03 13:47:11

标签: java multithreading file chat webcam

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

此外,随着群聊,可以进行一对一的聊天,这将允许用户使用网络摄像头。在会议聊天中没有网络摄像头。还有文件共享。

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

    1 个答案:

    答案 0 :(得分:1)

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

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