用websocket做聊天系统是非常合适的。

mongols是一个运行于linux系统之上的开源c++库,可轻松开启一个websocket服务器。

首先,build一个websocket服务器。

#include <mongols/ws_server.hpp>
//websocket server
int main(int,char**){int port=9090;const char* host="127.0.0.1";mongols::ws_server server(host,port);server.run();
}

才几行,这就成了吗?没错!不信你用wsdump.py测试下。测了啊,怎么一发送消息就关闭了连接?这是因为该服务器只接受json字符串消息,并且规定了几个必要field.否则只能接收消息,一发送就将关闭连接:

  1. gid,默认0
  2. uid,默认0
  3. gfilter,默认空数组[],表示转发给任意gid用户,非空则只发送给特定gid用户
  4. ufilter,默认空数组[],表示转发给任意uid用户,非空则只发送给特定uid用户

其他field为开发者自己决定。

因此,开发者只需在前端用javascript即可完成所有核心开发工作。

这里有演示地址和全部开源代码,包括前端和后端:

https://github.com/webcpp/fusheng

集成富文本编辑器quill,可发图片,代码,latex数学公式,纯文本当然没问题啦。

需要知道如何自定义图片上传的quill开发者,也可了解下。很简单的:

   var quill = new Quill('#editor-container', {modules: {formula: true,syntax: true,toolbar: '#toolbar-container'},placeholder: 'To be a good man! The best brower is Chrome.',theme: 'snow',});var toolbar = quill.getModule('toolbar');toolbar.addHandler('image', function (e) {document.getElementById('get_file').click();});$('#get_file').change(function () {var upload_form = $('#upload_form');var options = {url: '/upload',type: 'post',success: function (ret) {if (ret.err == 0) {var range = quill.getSelection();quill.insertEmbed(range.index, 'image', ret.upload_path);$('#get_file').val('');} else {toast.show({// 'error', 'warning', 'success'// 'white', 'blue'type: 'error',// toast messagetext: 'upload error',// default: 3000time: 3000 // 5 seconds});}},error: function () {toast.show({type: 'error', text: 'upload error or too big.', time: 3000});}}upload_form.ajaxSubmit(options);});

  

用mongols轻松打造websocket应用相关推荐

  1. api网关选型_如何轻松打造百亿流量API网关?看这一篇就够了(下)

    如何轻松打造百亿流量API网关?看这一篇就够了(上) 上篇整体描述了网关的背景,涉及职能.分类.定位环节,本篇进入本文的重点,将会具体谈下百亿级流量API网关的演进过程. 准备好瓜子花生小板凳开始积累 ...

  2. 小程序商城制作,轻松打造自己的会员系统

    2019独角兽企业重金招聘Python工程师标准>>> 小程序商城制作,轻松打造自己的会员系统 详情了解:http://www.jnqianle.cn/mall/ 简约版页面截图 : ...

  3. 轻松打造xfce4轻快桌面

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 我是这么作的 cd ...

  4. 虚拟机可以做成存储服务器吗,利用win10自带虚拟机功能轻松打造家用nas

    利用win10自带虚拟机功能轻松打造家用nas 2020-11-17 11:53:29 16点赞 95收藏 26评论 创作立场声明:本文所有内容原创,所涉及产品均自费购置.无利益关系.观众大人们可自行 ...

  5. 利用amWiki轻松打造知识库或技术文档系统

    利用amWiki轻松打造知识库或技术文档系统 1. 我为什么选择amWiki 1.1. 用什么来写? 1.2. 用什么系统? 1.3. amWiki的优点 1.4. amWiki的架构 2. 如何使用 ...

  6. html5中分镜图文脚本,抖音分镜脚本这样做 轻松打造100w+粉丝大号

    分镜头脚本是创作者必不可少的前期准备,也是演员和所有创作人员领会导演意图,理解剧本内容的重要依据. 那么抖音分镜头脚本怎么创作呢?分镜头脚本模板哪里有? 抖音分镜头脚本怎么写 分镜头脚本适合故事性较强 ...

  7. 弘辽科技:如何将新品打造成爆款?选对方法,教你轻松打造爆款

    原标题<弘辽科技:如何将新品打造成爆款?选对方法,教你轻松打造爆款> 还有一个星期的时间,我们就要迎来2021年的元旦了,在经历了2020年,是否还有很多商家在为付费流量贵,拿不到免费流量 ...

  8. Python生成Code128C条形码实现——轻松打造高效标识码!

    Python生成Code128C条形码实现--轻松打造高效标识码! Code128C是一种数字型条形码,适用于需要大量数字编码的场合.它能够表示1-128个 ASCII 码字符,具有高密度.可靠性强等 ...

  9. 用WPF轻松打造iTunes CoverFlow效果

    用WPF轻松打造iTunes CoverFlow效果 原文:用WPF轻松打造iTunes CoverFlow效果 用WPF轻松打造iTunes CoverFlow效果                  ...

  10. w10虚拟服务器,利用win10自带虚拟机功能轻松打造家用nas

    利用win10自带虚拟机功能轻松打造家用nas 2020-11-17 11:53:29 16点赞 96收藏 26评论 创作立场声明:本文所有内容原创,所涉及产品均自费购置.无利益关系.观众大人们可自行 ...

最新文章

  1. android卡点视频教程,剪映怎么制作卡点视频 制作方法介绍
  2. prototype极速应用1
  3. ABAP Text表的实现原理
  4. 动态反射——Load,LoadFrom和LoadFile
  5. Linux的学习思路
  6. 利用BioPerl将DNA序列翻译成蛋白序列
  7. Topological Sorting(拓扑排序)
  8. 使用 Filebeat 对多行日志进行处理(multiline)
  9. JQuery[12] 模仿QQ聊天界面
  10. 数据-第17课-栈课后练习
  11. python pop3_Python使用POP3和SMTP协议收发邮件
  12. 碳中和数据全集-最全碳排放、碳封存、碳排放权配额、碳交易、能源消费与二氧化碳排放
  13. thawte代码签名证书,comodo软件签名证书,symantec签名证书,digicert微软签名证书的区别
  14. 文墨绘学:情绪的根源——家长的不合理观念
  15. 《科研诚信与学术规范》参考答案最新版
  16. 加拿大计算机硕士gpa不够,申请加拿大硕士课程有GPA不足的硬伤怎么办?
  17. Hardware-in-the-loop End-to-end Optimization of Camera Image Processing Pipelines阅读笔记
  18. 计算机培训普通话是什么,普通话培训(计算机辅助普通话测试介绍).ppt
  19. Ubuntu下使用GCC开发STM32的环境的搭建
  20. Linux上安装git

热门文章

  1. 科技创新 可持续发展 论坛_可持续发展时间
  2. gan loss gan_我的GAN怎么了?
  3. 设计一个一元多项式加法器_【每日上机】一元多项式求导
  4. python xml第三方库_我应该使用哪个python XML库?
  5. linux删除所有python进程,linux 下python进程查看及关闭
  6. python如何提取json_python实现提取str字符串/json中多级目录下的某个值
  7. UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 11126: illegal multibyte sequence
  8. 第16章 Tomcat配置
  9. 使用PowerShell 导出Exchange中的用户中用户信息到Office 365
  10. ES6新特性总结 一