用mongols轻松打造websocket应用

简介: 用websocket做聊天系统是非常合适的。mongols是一个运行于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测试下。

用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 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);

    });

  

 

目录
相关文章
|
3月前
|
Dart 小程序 前端开发
WebSocket 解析与应用(包含web前端、服务端、小程序、dart/flutter中的用法)
WebSocket 解析与应用(包含web前端、服务端、小程序、dart/flutter中的用法)
195 0
|
3月前
|
传感器 监控 网络协议
WebSocket 实战:构建高效的实时应用
WebSocket 实战:构建高效的实时应用
WebSocket 实战:构建高效的实时应用
|
8月前
|
网络协议 开发者 UED
实时数据更新:WebSocket在球赛比分App中的应用
球赛比分的实时更新是体育迷们关注的焦点,为了满足用户对于实时数据的需求,开发者需要采用高效可靠的解决方案。WebSocket作为一种实时通信协议,在球赛比分App中提供了全双工、持久化的连接,使得服务器和客户端之间可以实时地进行双向通信。本文将深入探讨WebSocket在球赛比分App中的优势和应用场景,解析它的工作原理以及在App开发中的实际运用方法,帮助开发者实现高效、实时的球赛比分更新功能。
81 0
|
8月前
|
网络协议 开发者 UED
实时数据更新:WebSocket在App中的应用
实时数据更新是现代移动应用中的重要功能,为了满足用户对实时数据的需求,开发者需要寻找高效可靠的解决方案。WebSocket作为一种实时通信协议,在移动App中提供了全双工、持久化的连接,使得服务器和客户端之间可以实时地进行双向通信。本文将介绍WebSocket在App中实时数据更新的优势和应用场景,深入探讨它的工作原理和在App开发中的使用方法,帮助开发者实现高效的实时数据更新功能。
211 0
|
11月前
|
机器学习/深度学习 移动开发 JSON
「Web应用架构」轮询,SSE 和WebSocket,如何选择合适的?
「Web应用架构」轮询,SSE 和WebSocket,如何选择合适的?
|
11月前
|
XML JSON JavaScript
【Web应用架构】使用WebSocket构建交互式web应用程序
【Web应用架构】使用WebSocket构建交互式web应用程序
|
11月前
|
缓存 网络协议 安全
「Web应用架构」WebSocket用例,性能和性能检查列表
「Web应用架构」WebSocket用例,性能和性能检查列表
|
11月前
|
Web App开发 缓存 网络协议
「Web应用架构」WebSocket 协议介绍
「Web应用架构」WebSocket 协议介绍
|
11月前
|
JSON 安全 JavaScript
「Web应用架构」WebSocket介绍和WebSocket API
「Web应用架构」WebSocket介绍和WebSocket API
|
11月前
|
Web App开发 负载均衡 JavaScript
「应用中间件」使用NGINX作为WebSocket代理
「应用中间件」使用NGINX作为WebSocket代理