zoukankan      html  css  js  c++  java
  • 一个支持聊天机器人的开源IM

    0. 源码地址

    TinyIM

    经过6个月的开发工作,TinyIM的第一个版本终于完成了。IM这么多,它有哪些不一样的地方呢?

    1. 支持聊天机器人

    目前的主流IM客户端的设计上,收发消息都需要通过界面完成。我们知道GUI的代码做自动化测试比较困难,TinyIM对客户端采用了将GUI和Core分离的架构设计,并在Core部分同时支持TCP协议和HTTP协议。

    这样做的好处有两点:
    1、可以通过同步的HTTP协议编写ImRobot;
    2、可以通过同步的HTTP协议编写业务逻辑的测试代码。

    光说不练假把式,还是有图有真相的好。
    ImRobot

    2. 主模块跨平台

    多样化的社会也是丰富多彩的社会,那么跨平台就是多样化的一个体现。TinyIM一共有4个主要的程序组成,除ClientGUI以外,其他的模块都实现了跨平台。

    组件 Windows Linux MacOS
    ClientCore 支持 支持 理论支持,暂未测试
    ClientGUI 支持 可以通过Electron等技术支持 可以通过Electron等技术支持
    ChatServer 支持 支持 理论支持,暂未测试
    ImRobot 支持 支持 理论支持,暂未测试

    实际测试:
    在Windows平台和Ubunbu上我已经进行了测试,程序的编译和运行都没有问题。ClientGUI的部分,可以使用QT等跨平台技术开发,也可以使用Electron等技术。

    3. 图示流程,注释丰富

    对于每个主要的业务流程,TinyIM都力图使用流程图描述。从简单的逻辑到复杂的流程,都可以让您做到----“胸有成图,码到成功”。

    发送图片流程图:

    发送图片

    看代码最郁闷的就是没有注释了,TinyIM没有这个问题。TinyIM为几乎每一个函数都添加了Doxygen风格的注释,让您轻轻松松读代码,明明白白改bug。

    CodeComment

    4. 联系作者

    QQ群: 106350930
    邮箱: dennismi1024@gmail.com
    blog: 浮生笔记

  • 相关阅读:
    java解决跨域
    时间格式化
    base64图片实现文件上传
    java对Base64图片的加密解密
    A5/web项目连接Oracle 12c数据库报:ORA-01017: 用户名/口令无效
    JavaScript中call如何使用?
    C# 如何让new 出来的form显示在最外层?
    因为数据库和客户端字符集不一样原因,导致显示乱码???????,解决办法
    日语键盘按键修正记录
    keybd_event 在F按键系列不起作用的解决办法
  • 原文地址:https://www.cnblogs.com/Dennis-mi/p/12199980.html
Copyright © 2011-2022 走看看