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. 49. Search in Rotated Sorted Array && Search in Rotated Sorted Array II

    Search in Rotated Sorted Array Suppose a sorted array is rotated at some pivot unknown to you before ...

  2. python发邮件

    # -*- coding:utf- -*- import smtplib,os,sys,string import mimetypes from email import Encoders from ...

  3. 【转】用C#调用Windows API向指定窗口发送

    一.调用Windows API. C#下调用Windows API方法如下: 1.引入命名空间:using System.Runtime.InteropServices; 2.引用需要使用的方法,格式 ...

  4. teamviewer 过期解决办法

    参考资料: http://blog.csdn.net/z249683156/article/details/41842271

  5. c# 文件夾操作

    #region 圖片對應異動           string newFilePath = "~/FileUpLoad/Book/" + bookModel.BookNo;     ...

  6. asp.net C# 未能加载文件或程序集或它的某一个依赖项。需要强名称程序集。的解决办法

    asp.net C# 未能加载文件或程序集或它的某一个依赖项.需要强名称程序集.的解决办法 出现这个错误是原因:是有签名的DLL引用了无签名的DLL 如上图所示,就是因为引用Entity.MVCEnt ...

  7. Web前端之html_day2

    1.meta标签 1 2 3 <metacharset="UTF-8"/> <metaname="Keywords" content=&quo ...

  8. js常用正则表达式2

    字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对 ...

  9. js 定时函数

    Document自带的方法: 循环执行:var timeid = window.setInterval(“方法名或方法”,“延时”);window.clearInterval(timeid); 定时执 ...

  10. OpenSSL命令---passwd

    NAME passwd - compute password hashes SYNOPSIS openssl passwd [-crypt] [-1] [-apr1] [-salt string] [ ...