ONLYOFFICE的core代码研究

一、系统架构

在这里插入图片描述

二、工作原理

ONLYOFFICE主要包括四部分:①前端应用、②前端插件、③前端sdk库、④后台服务

后台服务主要作用是接受文件处理请求,然后对文档进行下载、转码、缓存等操作
前端sdk库起到承上启下的作用,封装对后台服务的操作,并为前端应用和插件提供可访问的API
前端应用会按照用户需求展示页面,并根据用户操作对后台服务发出请求。针对三种文档类型会有三个应用组合,每个应用组合中都有支持内嵌、web、移动端的入口
前端插件提供了方便扩展的在线处理系统的入口,可以按照需求增加各种插件。注意:前端插件会在预览时被禁用

三、二次开发实践

整个ONLYOFFICE都除了文档转码(core)部分为C++开发,其他全部使用Node.js开发

后台的主要服务(DocService,FileConverter,SpellChecker,Metrics)都是通过pkg打包成可执行文件,摆脱node环境的依赖
中文字体的生成的打包会通过 core中编译的工具 allfontsgen 来实现,可以在前端应用的编辑页面中展示中文字体(注意中文字体需要有中文family_name和英文family_name两个字体才可以正常生成中文)

四、自己的感想:

1.初步判断,只有core代码是无法单独运行起来的。虽然只有core部分为C++。Base64.csproj在VS2019上可以运行出一个启动框,可以添加doc文件,但是输出是乱码,button2按钮点了没反应,怀疑是要和其他组件配合。初期Laurent因为我们只负责C++,所以只给了core部分的代码。

2.前端页面:JavaScript、HTML
web服务器:一般是C/C++、Java、PHP多语言共同工作。

3.Node.js介绍

Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrom V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。

简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快,性能非常好。

4.进程间的通信
不经过内存的方式有两种
临时文件:A进程创建文件,把数据写入文件。B进程从文件中读出数据,删除文件。
②管道: | 管道操作符
本应写在屏幕上的内容,现在写入管道。 A|B。在Linux里用的比较多。



五、github网址

https://github.com/ONLYOFFICE/DocumentServer

六、本文出处

转载自:https://blog.csdn.net/binghe300/article/details/114276251

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值