用mongols轻松打造websocket应用
用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.否则只能接收消息,一发送就将关闭连接:
- gid,默认0
- uid,默认0
- gfilter,默认空数组[],表示转发给任意gid用户,非空则只发送给特定gid用户
- 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应用相关推荐
- api网关选型_如何轻松打造百亿流量API网关?看这一篇就够了(下)
如何轻松打造百亿流量API网关?看这一篇就够了(上) 上篇整体描述了网关的背景,涉及职能.分类.定位环节,本篇进入本文的重点,将会具体谈下百亿级流量API网关的演进过程. 准备好瓜子花生小板凳开始积累 ...
- 小程序商城制作,轻松打造自己的会员系统
2019独角兽企业重金招聘Python工程师标准>>> 小程序商城制作,轻松打造自己的会员系统 详情了解:http://www.jnqianle.cn/mall/ 简约版页面截图 : ...
- 轻松打造xfce4轻快桌面
分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 我是这么作的 cd ...
- 虚拟机可以做成存储服务器吗,利用win10自带虚拟机功能轻松打造家用nas
利用win10自带虚拟机功能轻松打造家用nas 2020-11-17 11:53:29 16点赞 95收藏 26评论 创作立场声明:本文所有内容原创,所涉及产品均自费购置.无利益关系.观众大人们可自行 ...
- 利用amWiki轻松打造知识库或技术文档系统
利用amWiki轻松打造知识库或技术文档系统 1. 我为什么选择amWiki 1.1. 用什么来写? 1.2. 用什么系统? 1.3. amWiki的优点 1.4. amWiki的架构 2. 如何使用 ...
- html5中分镜图文脚本,抖音分镜脚本这样做 轻松打造100w+粉丝大号
分镜头脚本是创作者必不可少的前期准备,也是演员和所有创作人员领会导演意图,理解剧本内容的重要依据. 那么抖音分镜头脚本怎么创作呢?分镜头脚本模板哪里有? 抖音分镜头脚本怎么写 分镜头脚本适合故事性较强 ...
- 弘辽科技:如何将新品打造成爆款?选对方法,教你轻松打造爆款
原标题<弘辽科技:如何将新品打造成爆款?选对方法,教你轻松打造爆款> 还有一个星期的时间,我们就要迎来2021年的元旦了,在经历了2020年,是否还有很多商家在为付费流量贵,拿不到免费流量 ...
- Python生成Code128C条形码实现——轻松打造高效标识码!
Python生成Code128C条形码实现--轻松打造高效标识码! Code128C是一种数字型条形码,适用于需要大量数字编码的场合.它能够表示1-128个 ASCII 码字符,具有高密度.可靠性强等 ...
- 用WPF轻松打造iTunes CoverFlow效果
用WPF轻松打造iTunes CoverFlow效果 原文:用WPF轻松打造iTunes CoverFlow效果 用WPF轻松打造iTunes CoverFlow效果 ...
- w10虚拟服务器,利用win10自带虚拟机功能轻松打造家用nas
利用win10自带虚拟机功能轻松打造家用nas 2020-11-17 11:53:29 16点赞 96收藏 26评论 创作立场声明:本文所有内容原创,所涉及产品均自费购置.无利益关系.观众大人们可自行 ...
最新文章
- android卡点视频教程,剪映怎么制作卡点视频 制作方法介绍
- prototype极速应用1
- ABAP Text表的实现原理
- 动态反射——Load,LoadFrom和LoadFile
- Linux的学习思路
- 利用BioPerl将DNA序列翻译成蛋白序列
- Topological Sorting(拓扑排序)
- 使用 Filebeat 对多行日志进行处理(multiline)
- JQuery[12] 模仿QQ聊天界面
- 数据-第17课-栈课后练习
- python pop3_Python使用POP3和SMTP协议收发邮件
- 碳中和数据全集-最全碳排放、碳封存、碳排放权配额、碳交易、能源消费与二氧化碳排放
- thawte代码签名证书,comodo软件签名证书,symantec签名证书,digicert微软签名证书的区别
- 文墨绘学:情绪的根源——家长的不合理观念
- 《科研诚信与学术规范》参考答案最新版
- 加拿大计算机硕士gpa不够,申请加拿大硕士课程有GPA不足的硬伤怎么办?
- Hardware-in-the-loop End-to-end Optimization of Camera Image Processing Pipelines阅读笔记
- 计算机培训普通话是什么,普通话培训(计算机辅助普通话测试介绍).ppt
- Ubuntu下使用GCC开发STM32的环境的搭建
- Linux上安装git
热门文章
- 科技创新 可持续发展 论坛_可持续发展时间
- gan loss gan_我的GAN怎么了?
- 设计一个一元多项式加法器_【每日上机】一元多项式求导
- python xml第三方库_我应该使用哪个python XML库?
- linux删除所有python进程,linux 下python进程查看及关闭
- python如何提取json_python实现提取str字符串/json中多级目录下的某个值
- UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 11126: illegal multibyte sequence
- 第16章 Tomcat配置
- 使用PowerShell 导出Exchange中的用户中用户信息到Office 365
- ES6新特性总结 一