博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用mongols轻松打造websocket应用
阅读量:6413 次
发布时间:2019-06-23

本文共 2131 字,大约阅读时间需要 7 分钟。

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

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

首先,build一个websocket服务器。

#include 
//websocket serverint 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即可完成所有核心开发工作。

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

 

 

集成富文本编辑器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 message                        text: 'upload error',                        // default: 3000                        time: 3000 // 5 seconds                    });                }            },            error: function () {                toast.show({                    type: 'error', text: 'upload error or too big.', time: 3000                });            }        }        upload_form.ajaxSubmit(options);    });

  

 

转载于:https://www.cnblogs.com/hi-nginx/p/9361903.html

你可能感兴趣的文章
linux文件系统
查看>>
ios 笔试题 1
查看>>
ExtJS4.2学习(13)基于表格的扩展插件---rowEditing
查看>>
第六章 大网高级 CBWFQ
查看>>
System.arraycopy()方法详解-jdk1.8
查看>>
mfc添加系统菜单
查看>>
手把手教你搭建LyncServer2013之日常管理命令行全集(十六)
查看>>
Netty Channel
查看>>
RHEL5下构建LAMP+Postfix+Dovecot+SquirrelMail+Extmail+Extman+SpamAssassin防垃圾邮件-下
查看>>
我的友情链接
查看>>
C++特殊函数方法
查看>>
查看网卡速度命令
查看>>
JAVA项目同时上传多个文件和多个内容
查看>>
CentOS 5.8中安装subversion的快速简便方法!
查看>>
视频营销:每天坚持更新一个视频具体工作细节安排
查看>>
MairDB计算和别名 (二)
查看>>
java学习,子类覆盖父类及重写的相关学习
查看>>
Linux设置全局环境变量的三种方法
查看>>
软件测试江湖(三)心得技巧篇
查看>>
2014全闪存阵列市场第一花落谁家?
查看>>