SFS2X 客户端-服务器协议

SFS2X使用了一种高效的二进制协议,这种协议可以使服务器在各方面都表现出色。消息通过客户端和服务器引擎得到快速转换,在带宽上传输可更加轻便。附加的即时压缩,能够在不影响总体性能的前提下允许更大程度的压缩。

这是对象传输使用基于XML的SmartFoxServer1.x的协议和SmartFoxServer2X二进制协议的例子。

SmartFoxServer 1.x:

这一存储消息,大小为1027bytes。

SmartFoxServer 2X:

这一消息,以二进制协议存储,没有进行压缩,大小为351bytes,大概为XML版本的1/3。

然后下面的是经过压缩后的存储信息,大小为239bytes,减少了32%大小。大消息更能体现出效果,特别是那些包含了许多字符串或者复杂嵌套对象的的消息。在这种情况系啊,消息大小压缩可以达到2-300%的数量级。

相比之前的版本,SFS2X的总体要求是它们的4.2倍左右。保守预测,接下来的新协议会在大体上再进行带宽减少3-6倍。

协议性能:

在服务端和客户端的2X版本中,转换协议的整体性能也同样得到了很大的提高。特别是在服务端效果更显著。我们是以消息数/秒为基准的,所以可以用旧的和新的文本协议进行转换。

SFS文本协议:

SFS二进制协议:

在消息转换上提高了有5-6倍。Fragmentation这一栏显示了表格中有多少模块是消息。换言之,在基准测试过程中,我们模拟了不同程度的模块包用以观察在数据汇总阶段对性能的影响。

模块的平均程度为使用6-10个模块,高级程度的是使用20-25个模块,原始的消息大小为350 bytes。

压缩:

当消息的大小大于配置数量时,可以通过客户端或者服务器激活压缩功能。

采用的算法是GZip/Zip格式的填充/释放技术,该算法具有快速和支持所有公共平台(如Flash,Java,.Net)等特点。

性能方面,该算法可以解压缩大于10K的消息/秒,压缩5K左右的消息/秒的任何双核机。这也意味着,在客户端的数据压缩的效果是微不足道的。

[SmartFoxServer概述]SFS2X协议的更多相关文章

  1. [SmartFoxServer概述]SFS2X特点

    SFS2X 特点概述 SFS2X采用SFS核心原理并在新的方向进行扩展,介绍了许多改善方案,同时专注于几个方面:使用简单化,通用化和性能化. *使用简单化:清除了SFS之前版本中所有不必要的复杂方法, ...

  2. [SmartFoxServer概述]SFS2X栈平台

    SmartFoxServer 2X 栈平台 在这有一张SmartFoxServer 2X平台的鸟瞰图,接下来会简要介绍栈中的每个组件. 首先是服务器的核心——网络引擎(代号BitSwarm),它是用以 ...

  3. USB概述及协议基础

    USB概述及协议基础 USB的拓扑结构 USB是一种主从结构的系统.主机叫做Host,从机叫做Device(也叫做设备). 通常所说的主机具有一个或者多个USB主控制器(host controller ...

  4. [SmartFoxServer概述]使用文档

    如何使用文档和例子 这份文档提供了一份关于如何通过SmartFoxServer 2X(缩写SFS2X)文档掌握要点的快速教程.在使用例子和技术文档之前,我们建议先参考以下主题内容. 不管你是Smart ...

  5. [SmartFoxServer概述]Zones和Rooms结构

    Zones和Rooms结构: 相对于SFS 1.X而言,在Zones和Rooms的配置上,SFS2X有了显著的改善.尤其是我们建立了房组这样一个简单的概念,它允许在一个逻辑组中管理Rooms,从而独立 ...

  6. TCP系列01—概述及协议头格式

    一.TCP简单介绍 我们经常听人说TCP是一个面向连接的(connection-oriented).可靠的(reliable).字节流式(byte stream)传输协议,  TCP的这三个特性该怎么 ...

  7. 18. HTTP协议一:概述、原理、版本、请求方法

    HTTP协议概述 HTTP协议就是我们常说的超文本协议(HyperText Transfer Protocol).HTTP协议是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准. ...

  8. Android IOS WebRTC 音视频开发总结(八十六)-- WebRTC中RTP/RTCP协议实现分析

    本文主要介绍WebRTC中的RTP/RTCP协议,作者:weizhenwei ,文章最早发表在编风网,微信ID:befoio 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID ...

  9. 【转】SPDY协议

    SPDY协议 - v3 原文:SPDY Protocol - Draft 3 翻译:邱鹏滔(QQ: 95350530,主页:www.fireflysource.com) 1 概述 HTTP协议的瓶颈在 ...

随机推荐

  1. 43. Merge Sorted Array && LRU Cache

    Merge Sorted Array OJ: https://oj.leetcode.com/problems/merge-sorted-array/ Given two sorted integer ...

  2. Debian 7.6 新编译内核 3.15.6 开机加载黑屏

    需要手动加载 fbcon 这个模块,或者编译内核的时候,Framebuffer Console support 编译进内核(后者没测试过).加在模块只要修改/etc/default/grub文件或者/ ...

  3. 使用eclipse搭建hadoop开发环境

    下载一个 hadoop-eclipse-plugin-*.jar的eclipse插件,并放在plugins目录下 重启eclipse   打开视象,找“大象” 连接HDFS   success 编程准 ...

  4. [转载]: delphi中XLSReadWrite控件的使用(1)---简介

    XLSReadWrite控件简介: 一个你需要的,能在Delphi和.NET下访问Excel文件的完美解决方案. 一个经典的读写Excel的控件,对于使用Excel 开发很有帮助 官方网站: http ...

  5. IE8下使用webuploader点击无反应的解决方法。

    在IE8开头添加如下代码. <meta http-equiv="X-UA-Compatible" content="IE=edge"> 即可解决,亲 ...

  6. (转)javascript中的对象查找

    本文转自:http://otakustay.com/object-lookup-in-javascript/  ---很棒的一篇文章,作者的其他文章还暂时没读,但相信作者是一个谦虚 谨慎的好工程师 近 ...

  7. Vc++ 控件用法总结之List Control

    1.新建对话框MFC,在对话框上放一个ListCtrl ID:IDC_PATH View:Report 2.为ListCtrl添加变量 右击->添加变量m_wndPath 3.找到OnInitD ...

  8. 未能加载文件或程序集Microsoft.ReportViewer.WebForms, Version=10.0.0.0

    解决方案如下ASP.NET项目使用VS2010开发,部署到windows 2008环境中,出现未能加载文件或程序集“Microsoft.ReportViewer.WebForms, Version=1 ...

  9. Ruby-打包程序

    1.下载 ocra-1.3.1.gem 文件 2.打开“start Command prompt with ruby”  命令窗口 3.输入 “gem install e:\ocra-1.3.1.ge ...

  10. Java NIO教程 MappedByteBuffer

    之前跟大家说过,要讲MappedByteBuffer,现在我来履行承诺了. 首先从大体上讲一下MappedByteBuffer究竟是什么.从继承结构上来讲,MappedByteBuffer继承自Byt ...