萌梦聊天室功能开发计划



  • 大家好。
    有很久都没有发布新的消息了,最近呢,除了我们发起的活动外,也没有发布更多有关产品的消息了。不过,其实我们一直在背后努力着,希望能够做出为大家带来方便的软件产品出来。现在,我想是时间介绍一下我们新的计划了。

    萌梦聊天室计划

    我们打算花费大概两个月的时间, 做出一个适配NodeBB论坛聊天室的基于Qt的聊天室出来。由于我们以前都没有制作IM的经验,所以对我们来说还是有一定的挑战的。

    为什么要发起这样一个计划?

    长久以来,我们发现我们的论坛好友或者我们的群友对我们非常关心,也向我们提出了很多问题和建议,但是我们发现,对于论坛以及手机App的研发来说,只是通过QQ等聊天工具来进行会显得沟通低效。我们迫切需要自己的一套聊天工具,通过二次开发来实现符合我们想要的效果,比如说获得提问者开发的环境数据以及其它相关的知识等等。一个很容易提出的问题是,我们开发者为什么不能做出符合我们的聊天工具来服务我们自己呢?
    此外,发起这项计划,开发这个聊天室还有我们的其它考量。这是因为,我们选定的聊天室底层技术是SocketIO。我们在论坛平稳运行八个月后发现,基于SocketIO技术可以在很多浏览器以及客户端应用中顺利使用。举个例子,Qt Dream萌梦社区拥有聊天室的功能,我们的模板NodeBB开发团队开发的即时聊天功能。我们发现聊天室可以做到Web浏览器通过即时消息功能群发到任意多的用户,几乎没有延时。这对于我们现在的服务器以及业务规模来说是够用的。因此我们认为,我们可以借助NodeBB为我们搭建的SocketIO聊天服务器,结合为我们已经掌握的Qt开发技术,在已经实现的Web网页端群聊功能的基础上,继续实现多客户端群聊的功能。并且随着我们对NodeBB论坛架构以及MongoDB数据库理解的深入,我们可以借助SocketIO实现多种业务逻辑,这将让我们产生无尽的遐想。比如说实现一个弹幕功能(:kissing_smiling_eyes: ),也是可行的。

    萌梦聊天室目前的进展如何?

    作为萌梦聊天室的先导项目,我们正在逐步实现SocketIO的JS库用C++来改写。目前(2016年6月12日)除了WebSocket的部分外,基本已经实现并且调通功能,而WebSocket的部分我们将采用QtWebSocket的绑定来实现效果。因此,我们发起聊天室项目,作为和SocketIO项目并行的项目,一起发展,在发现聊天室项目问题的过程中找到SocketIO的问题,也符合我们整体的研发计划。

    作为初步发起项目的展示,我花了一个小时的时间,搭建起了类似本站聊天室的界面,如下图:
    0_1465729388859_萌梦聊天室.png

    大家看,是不是和本站的聊天室很像啊?

    我们欢迎大家加入我们项目,如果合适的话,请站内回帖或者是留言给 @jiangcaiyang @jcy @jiangcaiyang123 。我们会在站内建立聊天室一起开发。我们将在不久后发布指导大家搭建开发环境的文章。

    欢迎持续关注我们项目的进展:sun_with_face:



  • @jiangcaiyang123 前排支持。



  • @jiangcaiyang123 二排支持。



  • @仗剑天涯 给你点一个赞。集齐三个赞你就可以在本论坛随心所欲了。



  • 今天(2016年6月14日)花了一点点时间制作出了类似我们聊天室列表的效果:

    0_1465898914101_upload-3b4441f4-5b09-4a46-a45f-6c5bf9fbd376



  • :clap_tone3:



  • @jiangcaiyang123 可以考虑先画出线框图。再从线框图实现他。



  • @qyvlik 是那种流程图吗?现在我还在调试底层的SocketIO呢。



  • @jiangcaiyang123 我是指界面的线框图。



  • @qyvlik 因为这个聊天室目前的界面以萌梦社区聊天室界面为准,因此这里暂时全盘采用那样的界面风格。如果呢,SocketIO这个部分调通了,我们将很方便地使用自定义的界面风格来做。:key2: :arrows_clockwise:



  • 支持哦 !~~~



  • 最新进展

    我们这边socket.io的功能调试通了,这边儿下一步就是在此基础上调试聊天室的功能了。



  • 目前进展

    要顺利地使用NodeBBsuntan发送消息,我们可能要做到保持登录的状态,因此利用我们写的socket.io来实现一次用户的登录功能还是有必要的。这里呢,能够找到论坛将用户发送的聊天室消息作为红色的点来提示给其它用户的代码在这里:

    0_1466767406611_upload-d2566880-a342-4602-b108-f3791558077a



  • 2016年6月24日:有关对于NodeBB论坛的探索,我在NodeBB论坛进行了相关提问:
    https://community.nodebb.org/topic/9086



  • 2016年06月26日 目前进展

    现在Socket.IO的调试基本告一段落,没有什么问题了,接着要想办法将上层的代码读懂,并且模仿写一个类似的代码来和本站的Socket.IO进行通信。



  • 2016年07月02日 进展:

    对我们的框架重新写了一遍。打算在这个基础上测试相应的功能。虽然非常艰苦,但是我们有信心完成!:kissing_smiling_eyes:



  • @jiangcaiyang 加油~



  • 2016年07月06日00:07:32

    重大进展!

    我们已经成功地实现客户端登录用户,并且能够获取聊天的列表了!有图有真相哦。
    0_1467734901453_upload-7083e2c7-a10e-4cf9-bbec-a3593b31af1a



  • 2016年7月7日

    主要聊天窗口现在也更新了!
    做得越来越好了!
    0_1467857829342_upload-98666d78-e30c-473b-a41a-f2534d9755d4



  • 继续加油

    提几点建议

    • 基本功能调试通过后,建议把界面美化这块做好些,毕竟是给用户用的
    • 可以加入推送功能,即使用户不在线,如果在聊天室组 可以收到消息推送
    • 是否有对聊天内容的限制,比如图片和文件发送

登录后回复
 

与 萌梦社区 的连接断开,我们正在尝试重连,请耐心等待