grocket

跨平台服务器框架
授权协议 BSD
开发语言 C/C++
所属分类 程序开发、 并发/并行处理框架
软件类型 开源软件
地区 国产
投 递 者 上官鸿祯
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

1、跨平台

Windows 32/64、Linux 32/64、Mac OSX

2、支持多种进程与线程模型

支持多线程模型和多进程模型的同时,对于我们使用最多的以fork模型实现资源共享的方式也提供支持。

3、高性能

每一行代码都精雕细琢,TCP性能超过nginx,至少也要和它持平。服务器内置HTTP协议支持,所以 可以和nginx服务器直接对比HTTP处理速度。

4、支持多语言编写服务器模块

可以用C和C++编写服务器模块。如果今后有需要,则还可以增加fastcgi和PHP等支持。

5、不要制造程序库的版本地狱 该高性能服务器框架不能尽量不要某些特定版本基础库的动态链接库,只能静态链接,否则会在将来的某天 给模块开发者制造由于版本冲突而崩溃的机会。当然如果使用前述100%兼容的新基础库就没有这个问题。

前述的基础库,同样是只要有头文件就能使用,基础库的二进制代码由服务器框架的可执行程序统一 管理,不再使用库的方式,彻底解决版本地狱的问题(这只是一个思路,还要验证)

6、服务器模块编写简单

ACE太难用了,这套服务器框架绝不能像ACE那样以一套函数库的松散形式来提供给使用者。给服务器框架 开发扩展模块并运行,所需要的全部就是一个可执行程序grocketd和一个grocket.h头文件。

模块只需要编写用户协议解析和处理代码即可,服务器框架同时支持UDP和TCP,甚至可以通过HTTP 传送,而希望启动哪个协议由模块编写者自己决定。

开发人员经过一分钟的培训后,再用一分钟就能写一个功能模块,并让该功能同时支持TCP、UDP、 HTTP。

假设功能代码行数为1行、协议解析代码为10行的话,整个业务模块代码文件的行数最少不会超过20行。 到目前为止我还没看到哪个服务框架的使用可以简单到这种程度。

只需要服务器框架提供的一个头文件即可编写服务器模块,彻底让开发人员从链接过程产生的各种 问题中解脱。

详细说明参见 demo_module 工程的源码。

 相关资料
  • 直到最近,我还认为WCF服务仅限于.NET(即只能从.NET应用程序访问),因为它们公开了一个.NET对象,使用者在该对象上调用方法(然后当然在服务器上运行)。 然后我读到WCF服务是跨平台的;即可以从多种平台访问,而不仅仅是.NET。

  • 多平台支持 Mpx支持在多个小程序平台中进行增强,目前支持的小程序平台包括微信,支付宝,百度,qq和头条,不过自2.0版本后,Mpx支持了以微信增强语法为base的跨平台输出,实现了一套业务源码在多端输出运行的能力,大大提升了多小程序平台业务的开发效率,详情可以查看template增强特性 不同平台上的模板增强指令按照平台的指令风格进行设计,文档和代码示例为了方便统一采用微信小程序下的书写方式。

  • 本文向大家介绍JavaScript跨平台的开源框架NativeScript,包括了JavaScript跨平台的开源框架NativeScript的使用技巧和注意事项,需要的朋友参考一下 NativeScript是一款使用JavaScript语言来构建跨平台原生移动应用的开源框架,支持iOS、Android和Windows Phone。且NativeScript的使用没有过多繁杂的要求,只需使用自己已

  • 我需要在我的应用程序中为不同的标签指定不同的FontFamily。我需要使用默认字体(如Android的Roboto和iOS的Helvetica)及其修改(如轻、中、粗)。据我所知,我应该使用Roboto-Light和Helvetica-Light来获得字体的轻版本(中号和粗体相同)。除了这个需求之外,我还需要在XAML中设置字体(如文档中所描述的),所以我最终得到了以下代码 然而,在Androi

  • 作为第三代数据统计和分析平台,诸葛实现了对用户的实名(实账号)分析,并主张互联网产品分析以用户为中心的分析思想并提供了一系列方法论。对用户的唯一标识来源于企业自身数据库对用户的唯一识别符,也即诸葛底层数据采集是以用户为中心的采集,我们提供了跨平台分析版本, 满足企业以用户为中心的整体的分析需求,不同平台相同业务价值下的用户完整的故事解读(例如:分析电商的用户在PC端浏览产品,在移动端支付的转化率)

  • 说明 由于在跨端开发中,必不可少的会遇到不同端需要有不同实现的情况。参考滴滴chameleon中的多态,megalo中实现了类似的跨平台兼容方案。需要使用时,请保证@megalo/target的版本号大于或等于0.7.2。 js的跨平台兼容 megalo中下面两种形式的引用会被特殊处理: [path-to-name]/[name]/index.mpjs [path-to-name]/[name]