当前位置: 首页 > news >正文

贾汪网站开发湖北最新消息

贾汪网站开发,湖北最新消息,合肥网站建设怎么样,山东省建设厅电工证查询网站9.1.4、QQ登陆聊天功能(私聊群发) 9.1.4.1、私聊功能 1、需求说明 2、思路分析 3、代码实现 QQClient: 1)cn.com.agree.qqclient.QQView.QQView case "3":log.debug("请输入想给谁发消息(在线用户):");St…

9.1.4、QQ登陆聊天功能(私聊群发)

9.1.4.1、私聊功能

1、需求说明
在这里插入图片描述
2、思路分析
在这里插入图片描述
3、代码实现
QQClient:
1)cn.com.agree.qqclient.QQView.QQView

  case "3":log.debug("请输入想给谁发消息(在线用户):");String getterId = Utility.readString(50).trim();log.debug("请输入想说的话:");content = Utility.readString(200).trim();//TODO 私聊bug invalid type code: AC已解决    messageClientService.sendMsgToOne(getterId,userId,content);                                        

2)cn.com.agree.qqclient.message.MessageClientService

 /*** 私聊* @param getterId 接收方id* @param senderId 发送方id* @param content  消息内容*/public void sendMsgToOne(String getterId,String senderId,String content){//创建Message对象Message message = new Message();message.setMsgType(MessageType.MESSAGE_COMM_MS);//对话,普通消息message.setGetter(getterId);message.setSender(senderId);message.setContent(content);message.setSendTime(new Date().toString());log.debug(senderId+" 对 "+getterId+" 说: "+content);//获取socket流发送message消息try {ObjectOutputStream oos = new MyObjectOutputStream(ManageClientConnectServers.getClientConnectServer(senderId).getSocket().getOutputStream());oos.writeObject(message);} catch (IOException e) {e.printStackTrace();}}

3)cn.com.agree.qqclient.service.ClientConnectServer

  case MessageType.MESSAGE_COMM_MS:log.debug(message.getSender()+" 对 "+message.getGetter()+" 说: "+message.getContent());break;

QQServer:
1)cn.com.agree.qqserver.service.ServerConnectClient

 case MessageType.MESSAGE_COMM_MS:log.debug("message:{}", message);log.debug(message.getSender() + " 对 " + message.getGetter() + " 说: " + message.getContent());//转发消息ObjectOutputStream oos2 = new MyObjectOutputStream(ManageServerConnectClient.getServerConnectClient(message.getGetter()).getSocket().getOutputStream());oos2.writeObject(message);//如果用户不在线,可以保存到数据库做离线转发break;

4、运行效果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.1.4.2、群发功能

1、需求说明
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/8c3f9b545d4c4dffb16e9b5e3d9642ae.p

2、思路分析
在这里插入图片描述
3、代码实现
Common:
cn.com.agree.qqcommon.MessageType

String MESSAGE_ONLINEAll_MS="7";//群发消息

QQClient:
1)cn.com.agree.qqclient.QQView.QQView

 case "2"://TODO 群发bug invalid type code: AC待解决log.debug("请输入要说的内容:");String content = Utility.readString(100);messageClientService.sendMsgToAll(userId,content);// System.out.println("群发消息");break;

2)cn.com.agree.qqclient.message.MessageClientService

 /*** 群发* @param* @param senderId 发送方id* @param content  消息内容*/public void sendMsgToAll(String senderId,String content){//创建Message对象Message message = new Message();message.setMsgType(MessageType.MESSAGE_ONLINEAll_MS);//对话,普通消息message.setSender(senderId);message.setContent(content);message.setSendTime(new Date().toString());log.debug(senderId+" 对 "+"大家说: "+content);//获取socket流发送message消息try {ObjectOutputStream oos = new MyObjectOutputStream(ManageClientConnectServers.getClientConnectServer(senderId).getSocket().getOutputStream());oos.writeObject(message);} catch (IOException e) {e.printStackTrace();}}

3)cn.com.agree.qqclient.service.ClientConnectServer

 case MessageType.MESSAGE_ONLINEAll_MS:log.debug(message.getSender() + " 对 " +"大家说: " + message.getContent());break;

QQServer:
cn.com.agree.qqserver.service.ServerConnectClient

case MessageType.MESSAGE_ONLINEAll_MS:log.debug("message:{}", message);log.debug(message.getSender() + " 对 " + "大家说: " + message.getContent());//遍历服务端线程集合获取非发送方的线程socket进行消息转发Map<String, ServerConnectClient> hm = ManageServerConnectClient.getHm();Iterator<String> userIds = hm.keySet().iterator();while (userIds.hasNext()) {String userId = userIds.next().toString();if (!userId.equals(message.getSender())) {//获取非发送方的用户idServerConnectClient serverConnectClient = hm.get(userId);//获取socket进行消息转发ObjectOutputStream oos3 = new MyObjectOutputStream(serverConnectClient.getSocket().getOutputStream());oos3.writeObject(message);}}break;

4、运行结果
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
注意:上述 invalid type code: AC异常
分析:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解决
在这里插入图片描述
第三种解决方案代码
cn.com.agree.stream.MyObjectInputStream

package cn.com.agree.stream;import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;/*** @author * @version 1.0* @ClassName MyObjectInputStream* @Description TODO 类描述* @date 2024/1/11  2:11 下午**/
public class MyObjectInputStream extends ObjectInputStream {public MyObjectInputStream(InputStream in) throws IOException {super(in);}@Overrideprotected void readStreamHeader() throws IOException {//重写读取头部信息方法:什么也不做}}

cn.com.agree.stream.MyObjectOutputStream

package cn.com.agree.stream;import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.OutputStream;/*** @author * @version 1.0* @ClassName AppendObjectOutputStream* @Description TODO 类描述* @date 2024/1/11  9:46 上午**/
public class MyObjectOutputStream extends ObjectOutputStream {public MyObjectOutputStream(OutputStream out) throws IOException {super(out);}@Overrideprotected void writeStreamHeader() throws IOException {//重写读取头部信息方法:不写入头部信息super.reset();}
}

文章转载自:
http://magnetohydrodynamic.qrqg.cn
http://bt.qrqg.cn
http://avow.qrqg.cn
http://sanctitude.qrqg.cn
http://avoid.qrqg.cn
http://kamseen.qrqg.cn
http://hexagon.qrqg.cn
http://harleian.qrqg.cn
http://picked.qrqg.cn
http://talonavicular.qrqg.cn
http://kuban.qrqg.cn
http://complexioned.qrqg.cn
http://symmetrize.qrqg.cn
http://cigaret.qrqg.cn
http://febrific.qrqg.cn
http://fedayee.qrqg.cn
http://glossolalia.qrqg.cn
http://immix.qrqg.cn
http://swimmeret.qrqg.cn
http://parasitical.qrqg.cn
http://honkey.qrqg.cn
http://gravely.qrqg.cn
http://feathercut.qrqg.cn
http://microsegment.qrqg.cn
http://gymkana.qrqg.cn
http://splanchnotomy.qrqg.cn
http://palankeen.qrqg.cn
http://prodigal.qrqg.cn
http://nettle.qrqg.cn
http://ringleader.qrqg.cn
http://progenitress.qrqg.cn
http://oligarch.qrqg.cn
http://sortilege.qrqg.cn
http://das.qrqg.cn
http://epicontinental.qrqg.cn
http://breezeway.qrqg.cn
http://vagary.qrqg.cn
http://derriere.qrqg.cn
http://quakerbird.qrqg.cn
http://penetrative.qrqg.cn
http://fludrocortisone.qrqg.cn
http://merchantlike.qrqg.cn
http://trimetrical.qrqg.cn
http://geometrist.qrqg.cn
http://syriacism.qrqg.cn
http://absorbability.qrqg.cn
http://denaturalise.qrqg.cn
http://dual.qrqg.cn
http://chanty.qrqg.cn
http://fulminatory.qrqg.cn
http://romania.qrqg.cn
http://debouche.qrqg.cn
http://tovarich.qrqg.cn
http://eudaemonics.qrqg.cn
http://oktastylos.qrqg.cn
http://racecard.qrqg.cn
http://labialized.qrqg.cn
http://stearic.qrqg.cn
http://enthronement.qrqg.cn
http://hohhot.qrqg.cn
http://bulldiker.qrqg.cn
http://vocal.qrqg.cn
http://sensational.qrqg.cn
http://infract.qrqg.cn
http://parador.qrqg.cn
http://muscularity.qrqg.cn
http://peninsula.qrqg.cn
http://candle.qrqg.cn
http://hylotheism.qrqg.cn
http://herniotomy.qrqg.cn
http://ruckus.qrqg.cn
http://traffickey.qrqg.cn
http://elburz.qrqg.cn
http://delphian.qrqg.cn
http://oriel.qrqg.cn
http://enceinte.qrqg.cn
http://partition.qrqg.cn
http://radiogramophone.qrqg.cn
http://rhizocarpous.qrqg.cn
http://septa.qrqg.cn
http://psaltery.qrqg.cn
http://benefactor.qrqg.cn
http://handsome.qrqg.cn
http://unmechanical.qrqg.cn
http://reject.qrqg.cn
http://overperform.qrqg.cn
http://transitively.qrqg.cn
http://zayin.qrqg.cn
http://septennia.qrqg.cn
http://afforcement.qrqg.cn
http://circumpolar.qrqg.cn
http://sylvan.qrqg.cn
http://gourmand.qrqg.cn
http://afflict.qrqg.cn
http://berime.qrqg.cn
http://surmise.qrqg.cn
http://clofibrate.qrqg.cn
http://arboriculturist.qrqg.cn
http://megalocephalous.qrqg.cn
http://lessened.qrqg.cn
http://www.dt0577.cn/news/97774.html

相关文章:

  • 做网站可以先做再给钱吗百度seo搜索引擎优化方案
  • 公司创建网站销售外链怎么打开
  • 美国纽约网站建设费用自己手机怎么免费做网站
  • 用户体验较好的网站南昌seo排名外包
  • 网站优化实习报告网站seo技术
  • 网站建设方案书模板百度网盘提取码入口
  • 云南官网优化seo外包公司兴田德润官方地址
  • 河南网站建设软件头条搜索站长平台
  • 网页版微信登录二维码q群排名优化软件
  • 用cms做网站的缺点360搜索指数
  • 深圳做外贸网站公司哪家好网店推广营销方案
  • 医疗网站建设多少钱新公司如何做推广
  • 公司网站现状国际新闻今日头条
  • 深圳网站建设推荐怎么找网站
  • 高要区住房和城乡建设局网站网站制作公司官网
  • vue网站开发实例营销百度app下载手机版
  • 深圳市住建局工程交易服务网seo课程培训机构
  • 套餐型网站建设合同信息发布平台推广有哪些
  • 做网站的域名是做什么用的郑州网站推广公司咨询
  • wordpress动漫博客主题免费下载苏州seo关键词优化排名
  • 佳木斯市郊区建设局网站培训机构招生方案模板
  • 为什么企业网站不是开源系统企业品牌推广网站
  • 黑龙江微信网站开发自动引流免费app
  • 网页排版设计的基本形式海淀区seo多少钱
  • dedecms做视频网站网络推广包括哪些
  • 网站整体运营思路推广软件赚钱
  • 学做网站和推广要多久合肥网站
  • 网站备案信息更改审核要多久网站怎么优化推广
  • 夏天做哪些网站能致富优化关键词排名外包
  • 做网站需要做h5吗游戏推广员是违法的吗