用java做一个多人聊天程序,文字消息可以用socket发送之外,其它的信息应该怎么发送到每个客户端?

route000 发布于 2017/06/04 08:40
阅读 705
收藏 1

解读下一代网络:算力网络正从理想照进现实!>>>

我之前抽空做过一个基于socket&多线程的简单聊天工具,界面使用java swing画,属于一个服务端连接多个客户端的模式,在每个客户端连进来之前,服务器程序有一个监听线程,使用serverSocket.accept()来监听指定端口(在没有用户连接之前,线程会一直阻塞在这里),当用户连接之后,立即返回一个socket,并开启一条线程;所以,有多少个用户,就有多少个线程,当每个线程接收到用户发出的消息,就立刻转发给所有客户端,代码是这样的

现在的问题是,文字消息可以通过socket发送,如果我想在每个用户连进来的时候,都能看见当前在线的所有用户,应该怎么做,用户列表还是通过socket发送到每个客户端吗,这样如何分别聊天信息和用户信息?贴图

这图怎么被拉长了……

也就是我在每个用户连接的时候,就将用户名发送到服务端,服务端会保存到一个list中,可是,如何将这个list里的所有用户名发送给每个客户端程序呢,代码贴图:

加载中
0
route000
route000

求高手帮忙啊。。。。

或者是不是可以用另外一种流通道来发送用户信息??这样就不会混淆了

 

0
金贞花
金贞花
你这个模式是上个世纪的开发思维。你上github搜索下im关键字就能找到答案
route000
route000
我知道这是很老的开发模式,我觉得既然还是上个世纪的问题,都不能解决的话,那凭什么去追求新技术?基本的东西都没消化,就去学新技术,到头来还不是空中阁楼?
route000
route000
那现在的开发思路是什么,用nio吗,单个线程轮询?
0
一只小桃子
一只小桃子

现在都xmpp协议吧好像。你自己写着玩无所谓的。可以把图片这些也用流写出去,也可以写一个地址出去,对方再根据地址去下载。自己规划好就像自己规定了一套协议一样。

返回顶部
顶部