当前位置:编程学习 > JAVA >>

服务器怎么把客户端的聊天内容push到各个在线的其他客户端同步显示?

大侠讲讲一般网游中聊天系统设计的基本思路。拜谢! --------------------编程问答-------------------- while(true){
  InputStream in = socket.getInputStream();
  ....
}
长连接 --------------------编程问答-------------------- 长连接 或者前端不停的轮回查询 --------------------编程问答--------------------
引用 1 楼 hanpoyangtitan 的回复:
while(true){
  InputStream in = socket.getInputStream();
  ....
}
长连接


是不是服务器和客户端约定好聊天的指令,一旦服务器收到任何一个客户端发来的,就接收并且发送?
很多客户端同一时间发来怎么办? --------------------编程问答--------------------
引用 3 楼 louistao 的回复:
引用 1 楼 hanpoyangtitan 的回复:

while(true){
InputStream in = socket.getInputStream();
....
}
长连接


是不是服务器和客户端约定好聊天的指令,一旦服务器收到任何一个客户端发来的,就接收并且发送?
很多客户端同一时间发来怎么办?

是的,那要看是广播还是p2p,广播的话因为要把每条发言发送给每个客户端因此要排队,如果是只发给某个客户端可以开个线程发送,但多线程比较消耗资源,如果对性能影响不大的话最好还是在一个线程内完成。 --------------------编程问答-------------------- 这方面一直痛啊 --------------------编程问答-------------------- 就是一系列协议。 --------------------编程问答--------------------
引用 4 楼 hanpoyangtitan 的回复:
引用 3 楼 louistao 的回复:
引用 1 楼 hanpoyangtitan 的回复:

while(true){
InputStream in = socket.getInputStream();
....
}
长连接


是不是服务器和客户端约定好聊天的指令,一旦服务器收到任何一个客户端发来的,就接收并且发送?
很多客户端同一时间发来怎么办?

是的,那要看……


谢谢大侠。现在网游中那些聊天一般是广播还是P2P啊?如果用广播一般会有多大的延迟?
--------------------编程问答-------------------- 有公聊,私聊。都用到了,延迟就看负载有多大。 --------------------编程问答-------------------- 1楼正解。也可以用Ip地址来进行数据传输。
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,