写个比较好玩的东西,最近有一个聊天室的项目,需要实现这么一个功能:机器人用户随机上线,所以就有了这一篇文章。既然要实现机器人用户随机上线,那么第一个问题呢,就是机器人的数据拼装了。虚拟用户上线,那么它必须具有真实用户以假乱真的信息数据,最显而易见的就是它的名字了。所以做了一个字典表,从字典表中拿name数据,那么字典表的数据从哪拿好呢?想过几个方案:使用用户+随机数什么什么的,最后想,为什么不自己用Java做了一个爬虫从斗鱼弹幕中拿斗鱼用户的昵称来做聊天室的机器人昵称呢?没有比这个更真的用户数据了。然后我就爬取了斗鱼中的用户名称,作为虚拟用户的昵称,并写入到数据库的robot表中,到此用户信息就没什么问题了。数据有了,接着就是如何推送机器人上线了,我是这么实现的:写一个定时任务,每30秒推送1-3个机器人上线,而机器人的昵称从robot字典表中取,这里为了提高性能,我是直接初始化字典表到redis中,从redis中取name。然后将name拼装好虚拟用户信息,并加入字段robot_flag:0为虚拟用户,1为真实用户,以便区分。至此就需要来做一些随机性和阈值控制了,既然要随机,那么我就随机从redis中拿name,拼装数据,sessionId也很重要,我robot表中取id+roomId做为sessionId,做到唯一性。并使用这个sessionId来判断这个机器人是否已经在OnlineList中了,聊天室的在线用户,我们也是存到redis中拿的,所以我只需要把拼装的机器人数据insert进去就ok了。阈值,是为了控制机器人的增长,设定一个阈值,到了这么多机器人就不再增长,当然,为了不让机器人一直在线,这里就set了HEARTBEAT_TIME,并使用随机数来控制有效时间,这样,有一些机器人就会根据这个有效时间来下线了,而当下降到阈值了自然又会添加新的虚拟用户。over~

Java实现机器人用户随机上线相关推荐

  1. Alibaba Java 2021 技术图谱全新上线

    简介:Alibaba Java 2021 技术图谱全新上线!学Java,看这张图就够了! [Alibaba Java 2021 技术图谱全新上线]学Java,看这张图就够了!https://devel ...

  2. java开发机器人聊天_聊天机器人与Web开发的未来

    java开发机器人聊天 Since Facebook launched their annual F8 conference for bot developers in 2016 and Micros ...

  3. hbase java 端口_HBase远程Java客户端尝试通过随机端口进行身份验证

    我想将本地java/scala进程连接到远程HBase服务器(v 1.1.2)(在docker中).我有以下代码:HBase远程Java客户端尝试通过随机端口进行身份验证 val config = H ...

  4. java 拼sql最大长度,java.sql.SQLNonTransientConnectionException: 用户 ID 长度 (0) 超出 1 到 255 的范围...

    使用Derby数据库进行JUnit测试时, 报出了org.springframework.transaction.CannotCreateTransactionException: Could not ...

  5. Java获取登录用户IP地址

    Java获取登录用户IP地址 /*** @param * @return * @throws * @description * @author wqd* @date 2021/9/21 13:45*/ ...

  6. Java+Swing+mysql用户信息管理系统

    Java+Swing+mysql用户信息管理系统 一.系统介绍 二.功能展示 1.管理员登陆 2.用户信息查询 3.用户信息添加 4.用户信息修改 5.用户信息删除 三.项目相关 3.1 乱码问题 3 ...

  7. java编写机器人_用JAVA编写自己的机器人一起“厮杀”

    什么是Robocode? 最近我在阅读一个关于极限编程(XP)的邮件列表,有人提议为对学习更多的XP方法学知识感兴趣的开发人员构建一个工作间.这位作者还建议,把一群人凑到一起,分成小组研究该方法学. ...

  8. java GUI实现用户管理系统

    使用Java GUI实现用户管理系统,连接MYSQL数据库,这是登录界面 下面是用户管理界面,登录之后可以进行相关操作 主要实现过程:启动程序 package manage;public class ...

  9. java设计一个user类_关于JAVA设计一个用户类

    关于JAVA设计一个用户类 关注:152  答案:2  mip版 解决时间 2021-02-02 05:51 提问者安分守己的小青春 2021-02-02 02:23 设计一个用户类,该类有用户编号. ...

最新文章

  1. STM32中IO口的8中工作模式
  2. keepalived基础及使用DR模型构建一个real_server
  3. 《深入浅出数据分析》样章下载
  4. c++判断整数翻转溢出_LeetCode7.整数反转(Reverse Integer)
  5. 网络工程师第五站-有线、无线同网段混合组网(多FAT案例)
  6. APL开发日志--2013-01-17
  7. 【opencv学习】给图像加图形注释
  8. Linux命令:find命令
  9. 复制链接到safari浏览器打开_APP应用内嵌h5页面怎么直接打开Safari来访问链接?
  10. 网上支付(支付宝/银联)
  11. 问题解决办法:pip tensorrt成功,PyCharm import出错
  12. [原创]编程实现UCDOS字库的显示和打印
  13. 儿童时间管理表,让孩子学会善待时间
  14. GPS: 经纬度概念
  15. 使用Kotlin+JetPack 从零开发自己的日记App
  16. (电脑问题) win10飞行模式无法关闭和突然连接不上网络解决方法
  17. 如何将一串数字用函数的方法倒过来(C语言)
  18. has a default child route. When navigating to this named route 。。。。。报错
  19. NAR:人类虚拟代谢数据库——整理人类和肠道菌群与营养和疾病
  20. 学习阶段路线已备好,Python入门—进阶—爬虫—算法,带你进阶

热门文章

  1. 面试问离职原因,怎么说才好?
  2. k8s 亲和、反亲和、污点、容忍
  3. 嵌入式OS的现状、智能的物联网与未来的机器人
  4. 程序员如何写好技术简历 —— 实例、模板及工具
  5. 在PPT上使用开发工具的不同控件实现单选操作
  6. 于IIS 7的HTTP 错误 500.0 - Internal Server Error(错误代码:0x800700.
  7. 奇幻之旅,全世界畅游
  8. 重新装mysql出现乱码,数据库出现乱码的原因和解决办法
  9. 领导说“辛苦了”该怎么回?低情商说不辛苦,怎么回才显情商高?
  10. 中国石油大学《工程概预算与招投标》第一阶段在线作业