Hola

前言

本项目旨在从零到壹,制作一款界面精美的聊天软件。

Github 地址

因为已工作,所以可能没有多少时间来继续跟进这个项目了,项目可优化的点已在下文列出,欢迎大家 Fork 或 Star。

ps: 征 logo 一枚。因为本人是开发,设计功底欠缺,所以软件 logo 设计的有点丑,如果有大神有更好的 logo,欢迎 email。

技术栈

  • 开发环境

    • 操作系统:macOS High Sierra v10.13.1
    • 编辑器:Visual Studio Code v1.19.1
    • npm:v5.3.0
    • Node:v8.4.0
  • 客户端

    • UI设计:Sketch
    • 软件框架:Electron
    • 界面实现:Vue.js + Vuex + Vue-Router + Webpack
    • 通信模块:socket.io-client
    • 视频聊天:原生 WebRTC
  • 服务端

    • 服务器:Node.js
    • 后端框架:Koa2
    • 通信模块:socket.io
    • 数据库:Redis 和 MongoDB

软件效果图

实现功能

  • [x] 登录注册模块(<手机号+验证码>形式的登录注册)
  • [x] 聊天区模块
    • [x] 最近联系人列表
    • [x] 历史消息(暂未做上拉加载)
    • [x] 私聊
      • [x] 文本消息
      • [x] 图片消息
      • [x] 视频聊天
    • [x] 群聊
      • [x] 文本消息
      • [x] 图片消息
  • [x] 联系人模块
    • [x] 联系人列表
    • [x] 好友资料展示
    • [x] 群组资料展示
    • [x] 删好友,退出或解散群组
  • [x] 功能区模块
    • [x] 添加好友/群组
    • [x] 创建群组
  • [x] 设置区模块
    • [x] 个人资料设置
    • [x] 软件设置
      • [x] 国际化

        • [x] 中文
        • [x] 英文

项目目录

.
├── LICENSE
├── README.md
├── client          # 客户端代码
├── docs            # 各种文档(需求文档、UI文档、流程图、数据库设计等)
├── preview.png     # 软件预览图
└── server          # 服务端代码
复制代码

反思 & 展望

该项目为我大学毕业设计的项目,因时间紧迫,只实现了基本的聊天、加删好友等功能,很多功能还未实现,所以软件还是有很多的瑕疵。为此,我特意思考了很长时间,将待改进的细节或新的功能总结如下:

  • [ ] 历史消息做成上拉瀑布流加载的效果
  • [ ] 为消息注明消息时间、发送状态、已读未读等状态
  • [ ] 为最近联系人列表添加最后一条消息的展示
  • [ ] 为最近联系人添加未读消息个数的统计
  • [ ] 添加好友或加入群组时要进行确认
  • [ ] 为软件的新消息使用系统原生通知窗口通知
  • [ ] 为软件增加原生菜单
  • [ ] 升级输入框,从而可以向输入框直接插入剪切板中的图片
  • [ ] 自己搭建文件服务器,图片服务器(或者使用第三方比如七牛云、阿里云的相关服务)
  • [ ] 为 WebRTC 实现后备方案,搭建 Relay Server,以增强视频聊天的稳定性
  • [ ] 增加网络断开处理的相关逻辑
  • [ ] 了解数据加密相关知识,为消息作加密处理
  • [ ] 为软件做跨平台处理,兼容性方面有待加强
  • [ ] 实现软件自动更新
  • [ ] 接入智能机器人聊天
  • [ ] 实现本地存储历史消息(nedb)
  • [ ] 为软件加入聊天情况分析(比如每天发了多少条消息,与谁聊天最频繁等)

扩展阅读

  • 初探 Electron - 理论篇
  • 初探 Electron - 升华篇
  • XCel 项目总结 - Electron 与 Vue 的性能优化
  • 【译】Electron 自动更新的完整教程(Windows 和 OSX)
  • Getting Started with WebRTC
  • 通俗易懂:一篇掌握即时通讯的消息传输安全原理
  • 即时通讯安全篇(三):常用加解密算法与通讯安全讲解
  • socket.io断线后重连和消息离线存储如何实现
  • Socket.IO stream
  • 运用google-protobuf的IM消息应用开发(前端篇)
  • Can one hack “paste image” support into a textarea in Firefox?
  • 在线和离线事件

转载于:https://juejin.im/post/5bdc4a4be51d45069d739b41

Hola~ 一款基于Electron的聊天软件相关推荐

  1. 基于Android的聊天软件,Socket即时通信,实现用户在线聊天

    基于Android的聊天软件,Socket即时通信,单聊,聊天室,可自行扩展功能,完善细节. [实例功能] 1.运行程序,登录界面, 注册账号功能 2.进入主界面,有通讯录, 个人信息. 3.点击好友 ...

  2. linux qq多进程客户端,基于多进程QQ聊天软件设计.doc

    基于多进程QQ聊天软件设计 基于多进程的QQ聊天程序设计功能需求描述用户名登陆聊天,人与人之间交流是必不可少的.私聊,与特定的用户聊天群聊,向所有的用户发送消息,大家一起聊欢乐多 server端 输入 ...

  3. 局域网聊天软件都有哪些?几款常用的局域网聊天软件推荐

    随着科技的不断发展,人们在日常生活和工作中越来越需要高效便捷的沟通工具.而局域网聊天软件就是一种在局域网内使用的聊天工具,它能够帮助用户在同一网络内的设备之间进行即时通讯,无需依赖于互联网连接,安全又 ...

  4. 基于Qt的聊天软件设计实现手把手教学——高仿QQUI设计(一)

    文章目录 前言 一.使用工具 1. Qt Creator 二.项目介绍 1.客户端 1.1 Socket套接字 2.服务端 2.1 数据库 2.2 数据处理 3.效果图 4.总体系统架构图 小结 前言 ...

  5. 基于python的聊天软件的设计与实现_Python基于TCP实现会聊天的小机器人功能示例...

    本文实例讲述了Python基于TCP实现会聊天的小机器人功能.分享给大家供大家参考,具体如下: 一 代码 1.服务端程序 import socket words ={'how are you?':'F ...

  6. Android_基于BMOB的聊天软件_添加好友

    之前提过为什么要用BMOB,前段时间完成了用户的注册与登录,现在做添加好友功能,主要 参考BMOB官网 提供的资料. 主要流程就是,输入好友关键字,点击搜索,显示服务器上对应的搜索结果,用BMOB的好 ...

  7. 基于Android的聊天软件的设计与实现-一个聊天软件开发起来没那么难不是?

    您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦.

  8. C#毕业设计——基于C#+vs.net+SQL Server的多功能聊天软件设计与实现(毕业论文+程序源码)——多功能聊天软件

    基于C#+vs.net+SQL Server的多功能聊天软件设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+vs.net+SQL Server的多功能聊天软件设计与实现,文章末尾附有 ...

  9. 微信UI在线聊天源码 聊天系统PHP采用 PHP 编写的聊天软件,简直就是一个完整的迷你版微信

    介绍: DuckChat 是一套完整的私有即时通讯(instant message)解决方案,含服务器端程序.客户端(含 iOS.Android.PC 等)程序.通过 DuckChat,站点管理员可以 ...

  10. 基于android的记账软件,基于Android的记账软件的设计与实现

    摘要: 随着经济社会的发展,人们的资金流动更加频繁,对记账的需求也逐渐提高.目前移动设备已经普及,移动记账以其随时随地记账,高效统计的特点,受到了广大记账理财人士的青睐.本文通过对国内外手机记账软件发 ...

最新文章

  1. 强烈推荐!最好用的《机器学习实用指南》第二版终于来了,代码已开源!
  2. 大数据在企业IT的应用
  3. eclipse mybatis插件_Archetype插件的介绍和使用
  4. react --- render持续调用解决方案
  5. multisim变压器反馈式_【鼎阳硬件智库原创|高速总线】 以太网变压器反转问题技术分析...
  6. 4.3.8 使用模板
  7. 捷联惯导系统(SINS)误差模型
  8. 计算机网络安全技术实验教程,网络安全实验教程
  9. FixFox 打包xpi扩展
  10. VS常用的12个插件
  11. Language Models are unsupervised multitask learners
  12. 日志追踪-Java字节码-类文件结构
  13. win11如何打开热点?
  14. html实现百度换肤,案例实战(二):百度脑图网站换肤
  15. VLC保存网络视频及抓包合成视频
  16. 骏文c语言银行系统,C语言学生选课管理系统
  17. 多懂点SQL可以写出更好的接口
  18. python之html网页转PDF
  19. 世界最大射电望远镜(Arecibo)用于探测地外文明
  20. 硬件开发趋势与技术探索

热门文章

  1. 六度分隔,邓巴数和幂律如何主宰我们的社交网络
  2. 爬取京东某商品评论并存入csv
  3. GlassFish漏洞总结复现
  4. 解决webView不支持网页input type=“file“上传功能。接个文章搜索,自己写的代码,确保可以使用。
  5. stm32核心板可以点亮灯吗_不忘初心牢记使命——自动化科协自行设计开发stm32仿真器...
  6. 链路聚合Eth-Trunk
  7. vue项目实现高德地图截图
  8. Windows系统 查询本机物理地址、IP地址
  9. editor上传视频无法播放的问题
  10. 从零开始写NES模拟器