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

手机页面网站开发例子百度竞价排名什么意思

手机页面网站开发例子,百度竞价排名什么意思,古典网站建设,如何去掉 wordpress9.1.5、QQ登陆聊天功能(服务端推送新闻、离线留言和文件) 9.1.5.1、服务端推送新闻 1、需求分析 2、思路分析 3、代码实现 QQServer: 1)cn.com.agree.qqserver.service.SendNewsToAllClient package cn.com.agree.qqserver.s…

9.1.5、QQ登陆聊天功能(服务端推送新闻、离线留言和文件)

9.1.5.1、服务端推送新闻
1、需求分析
在这里插入图片描述
2、思路分析
在这里插入图片描述

3、代码实现
QQServer:
1)cn.com.agree.qqserver.service.SendNewsToAllClient

package cn.com.agree.qqserver.service;import cn.com.agree.qqcommon.Message;
import cn.com.agree.qqcommon.MessageType;
import cn.com.agree.stream.MyObjectOutputStream;
import cn.com.agree.util.Utility;
import lombok.extern.slf4j.Slf4j;import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;/*** @version 1.0* @ClassName SendNewsToAll* @Description TODO 类描述* @date 2024/1/12  11:37 上午**/
@Slf4j
public class SendNewsToAllClient implements Runnable {@Overridepublic void run() {while (true) {//构建消息对象Message message = new Message();message.setSender("服务器");message.setMsgType(MessageType.MESSAGE_ONLINEAll_MS);Scanner scanner = new Scanner(System.in);log.debug("请输入要推送的服务器消息(输入exit退出):");String news = scanner.next();if("exit".equals(news)){log.debug("服务器推送线程已退出");break;}message.setContent(news);message.setSendTime(new Date().toString());log.debug(message.getSender()+" 对大家说: "+message.getContent());//遍历服务端所有的用户id得到对应的线程socket转发给对应的客户端Map<String, ServerConnectClient> hm = ManageServerConnectClient.getHm();Iterator<String> iterator = hm.keySet().iterator();while (iterator.hasNext()) {String userId = iterator.next().toString();try {ObjectOutputStream oos = new MyObjectOutputStream(ManageServerConnectClient.getServerConnectClient(userId).getSocket().getOutputStream());oos.writeObject(message);} catch (IOException e) {e.printStackTrace();}}}}
}

2)cn.com.agree.qqserver.service.qqServer

 while (true) {socket = serverSocket.accept();//获取来自客户端发送过来到用户对象log.debug("socket Client连接成功");new Thread(new SendNewsToAllClient()).start();ObjectInputStream bis = new MyObjectInputStream(socket.getInputStream());User user = (User) bis.readObject();//获取输出流对象写入返回给客户端的消息ObjectOutputStream oos = new MyObjectOutputStream(socket.getOutputStream());og.debug("user:{}",user);Message message = new Message();...
}

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

9.1.5.2、离线留言和文件

1、需求分析
在这里插入图片描述
2、思路分析
在这里插入图片描述
3.1、代码实现(发送离线消息)
1)cn.com.agree.qqserver.service.ManageServerConnectClient

 private static  Map<String, List<Message>> notOnlineMessages = new ConcurrentHashMap<>();public static  void addNotOnlineMessage(String getterId, List<Message> messages){notOnlineMessages.put(getterId, messages);}public static List<Message> getNotOnlineMessage(String getterId) {return notOnlineMessages.get(getterId);}

2)cn.com.agree.qqserver.service.ServerConnectClient

case MessageType.MESSAGE_COMM_MS:log.debug("message:{}", message);log.debug(message.getSender() + " 对 " + message.getGetter() + " 说: " + message.getContent());ServerConnectClient connectClient = ManageServerConnectClient.getServerConnectClient(message.getGetter());if(connectClient==null){//做离线消息处理,将数据保存到数据库(这里保存到Map中)if(ManageServerConnectClient.getNotOnlineMessage(message.getGetter())==null){List<Message> messages = new ArrayList<>();messages.add(message);                    ManageServerConnectClient.addNotOnlineMessage(message.getGetter(),messages);}else{                      ManageServerConnectClient.getNotOnlineMessage(message.getGetter()).add(message);}}else {//转发消息ObjectOutputStream oos2 = new MyObjectOutputStream(connectClient.getSocket().getOutputStream());oos2.writeObject(message);//如果用户不在线,可以保存到数据库做离线转发}break;

3) cn.com.agree.qqserver.service.qqServer

 //去服务端查询是否有来自他的消息,有的话转发给对应的用户List<Message> notOnlineMessage = ManageServerConnectClient.getNotOnlineMessage(user.getUserId());if(notOnlineMessage!=null&&notOnlineMessage.size()>0){for (Message message1 : notOnlineMessage) {ObjectOutputStream oos2 = new MyObjectOutputStream(socket.getOutputStream());oos2.writeObject(message1);}}

4.1、效果演示
在这里插入图片描述
在这里插入图片描述
上线后收到消息
在这里插入图片描述
3.2、代码实现(发送离线文件)

 case MessageType.MESSAGE_FILE_MESSAGE://log.debug("message:{}", message);log.debug(message.getSender()+" 给 "+message.getGetter()+" 发送了 "+message.getSrc()+" 到我的电脑的 "+message.getDesc()+" 路径");ServerConnectClient serverConnectClient = ManageServerConnectClient.getServerConnectClient(message.getGetter());if(serverConnectClient==null){//做离线消息处理,将数据保存到数据库(这里保存到Map中)if(ManageServerConnectClient.getNotOnlineMessage(message.getGetter())==null){List<Message> messages = new ArrayList<>();messages.add(message);ManageServerConnectClient.addNotOnlineMessage(message.getGetter(),messages);}else{ManageServerConnectClient.getNotOnlineMessage(message.getGetter()).add(message);}}else {//进行转发给客户端ObjectOutputStream oos4= new MyObjectOutputStream(serverConnectClient.socket.getOutputStream());oos4.writeObject(message);}break;                        

4.2、效果展示
在这里插入图片描述
在这里插入图片描述
300上线后成功接收
在这里插入图片描述

http://www.tj-hxxt.cn/news/77369.html

相关文章:

  • 源代码网站和模板做的区别企业营销案例
  • 怎么做自己微信的网站百度高级搜索
  • 淘宝客网站一定要备案软件开发公司经营范围
  • 合肥哪家公司做网站靠谱新公司如何做推广
  • 滨海网站建设找哪家好seo培训班
  • 网站建设方案意见电子商务推广方式
  • 静态网站开发工具有哪些上海网站快速排名优化
  • archdailyseo优化排名方法
  • ps做图游戏下载网站有哪些优化大师好用吗
  • 专做教育网站拿站营销活动方案模板
  • 西安做的好的网站公司新闻源
  • 8个页面的网站怎么做在线制作网站免费
  • 成都市建设交通委员会网站网页推广平台
  • 香港公司网站内地主机桔子seo查询
  • 帮人做网站的推广一键优化下载
  • 中国纪检监察报谁题的报名北京网优化seo公司
  • 商城类网站建设需要多少钱谷歌搜索引擎入口2021
  • 门户网站收录什么叫做优化
  • 小视频网站开发流程图北京疫情最新情况
  • 专业做公司宣传网站网络营销的八大能力
  • 免费制作网站的步骤 怎样做网站温州网站建设开发
  • 青岛做网站方案搜索引擎广告优化
  • 2018春节放假安排 网站建设全网营销系统是不是传销
  • 怎么查网站备案域名备案中国进入一级战备状态了吗
  • 做网站数据库有哪些营销方案怎么写
  • 网上做平面设计兼职不错的网站百度数据研究中心官网
  • 商城网站开发背景网站站长工具
  • 做网站攻击优化工具箱
  • 做一款什么网站赚钱百度推广外推联系方式
  • 怎么呼叫腾讯人工客服网页优化