SuperSocket特点】的更多相关文章

在上一篇文章<基于mina框架的GPS设备与服务器之间的交互>中,提到之前一直使用superwebsocket框架做为IIS和APP通信的媒介,经常出现无法通信的问题,必须一天几次的手动回收程序池,甚至重起服务器,通常周末接到一个陌生电话,就是说客户端无法登录了,说多了都是泪.痛定思痛,开始找解决方案,其实superwebsocket以IIS做为宿主,就注定他可能不稳定了,当然,它部署非常方便:为了稳定,我开始尝试使用SuperSocket,当然,这也注定了后期部署会麻烦些:生活就是这样哈,鱼…
public class MasterServer : SuperSocket.SocketBase.AppServer<MasterSession> { } public class MasterSession: SuperSocket.SocketBase.AppSession<MasterSession> { protected override void HandleUnknownRequest(StringRequestInfo requestInfo) { Send(C…
本来博客都停了,不打算更了,但今天百度一个socket的问题时无意间发现第一篇的socket文章权重仅次于SuperSocket网站,顿时觉得自己6到不行,再写一篇,讨论下数据持久化的问题 去年搞那个socket小功能的时候,为了对客户端发上来的数据做持久化,使用的是内存,server启动的时候就开个线程一直在轮内存中的List,当时就对socket很失望:还不如客户端直接来轮服务器,但是后来总监提醒了我,用socket是为了节省网络的流量,如果使用web来轮询,流量会很大,所以还得socket…
SuperSocket 提供了一些通用的协议解析工具, 你可以用他们简单而且快速的实现你自己的通信协议: TerminatorReceiveFilter (SuperSocket.SocketBase.Protocol.TerminatorReceiveFilter, SuperSocket.SocketBase) CountSpliterReceiveFilter (SuperSocket.Facility.Protocol.CountSpliterReceiveFilter, SuperSo…
SuperSocket 是一个轻量级的可扩展的 Socket 开发框架,由江振宇先生开发,之所以选用它是因为一下几点恰好复合项目需求: 开源,基于Apache 2.0协议,可以免费使用到商业项目. 高性能的事件驱动通信. 会话级别的发送队列能够让你通过会话并发的发送数据,并保持高性能和可控性. 强大且高性能的协议解析实现工具帮你简化了网络数据的分析工作:自带多种数据帧过滤器,可实现自己的数据帧过滤器,可自定义数据内容协议,粘包拆包都是浮云. 轻量级意味着组件可以自由选择使用,可根据环境变化变更.…
转自:http://docs.supersocket.net/v1-6/zh-CN/Architecture-Diagrams 中文(中国)Toggle Dropdown v1.6Toggle Dropdown 关键字: 架构设计示意图, 层次示意图, 对象模型图示意图, 请求处理模型示意图 SuperSocket 层次示意图 SuperSocket 对象模型图示意图 SuperSocket 请求处理模型示意图 SuperSocket 隔离模型示意图 Next: 一个Telnet示例…
源代码的地址:https://github.com/kerryjiang/SuperSocket 安装git之后,可以使用命令行git clone https://github.com/kerryjiang/SuperSocket.git 或者使用tortoisegit的右键菜单中的克隆选项,填入的地址是https://github.com/kerryjiang/SuperSocket.git clone代码之后,务必记得切换到v1.6分支,[默认的当前分支是master] 查看分支的命令git…
首先确认下配置文件中的内容 第一部分configSections[需要注意的是name=superSocket] <configSections> <section name="superSocket" type="SuperSocket.SocketEngine.Configuration.SocketServiceConfig, SuperSocket.SocketEngine"/> </configSections> 第二部…
近几日想在一个项目中引进一个Socket Server,用来接收客户端发送的命令消息并根据具体的业务逻辑对消息进行处理,然后转发给其它在线的客户端.因为以前在博客园关注过江大渔开源的SuperSocket,后来便在Github和Codeplex上一直关注该项目,但仅仅限于关注和了解.这次想通过具体的实践进一步学习该框架.我觉得一个优秀的开源项目离不开漂亮的代码.清晰的文档.完善的测试.持续的更新,当然从普通走向卓越更离不开社区的支持(源码.宣传.案例及文档等).而SuperSocket对我个人而…
关于WebSocket其实很早就想发了,奈何之前项目中的WebSocket的后端不是我做的,而我又想前后端都发出来和大家讨论讨论~于是挤出点时间研究了一下WebSocket的后端实现(所以才有了这篇文章). 首先是概念导论,现在大家在百度.谷歌很容易就能搜索到一大堆这样的socket(百度百科).Socket详解(太多了就不一一列举) 看过这些概念导论以后,我们准备先实现WebSocket的服务端(基础概念都没掌握的童鞋们需要补课了). 说到.net的WebSocket实现,就不得不说Super…
今天准备给大家介绍一个c#服务器框架(SuperSocket)和一个c#客户端框架(SuperSocket.ClientEngine).这两个框架的作者是园区里面的江大渔. 首先感谢他的无私开源贡献.之所以要写这个文章是因为群里经常有人问这个客户端框架要如何使用.原因在于服务端框架的文档比较多,客户端的文档比较少,所以很多c#基础比较差的人就不懂怎么玩起来.今天就这里写一个例子希望能给部分人抛砖引玉吧. 参考资料: SuperSocket文档 http://docs.supersocket.ne…
using System;using System.Collections.Generic;using System.Linq;using System.Text;using SuperSocket.Common;using SuperSocket.Facility.Protocol;using SuperSocket.SocketBase;using SuperSocket.SocketBase.Protocol;using SuperSocket.SocketEngine; namespac…
什么是AppSession? AppSession 代表一个和客户端的逻辑连接,基于连接的操作应该定义于在该类之中.你可以用该类的实例发送数据到客户端,接收客户端发送的数据或者关闭连接.同时可以保存客户端所关联的数据. 什么是AppServer? AppServer 代表了监听客户端连接,承载TCP连接的服务器实例.理想情况下,我们可以通过AppServer实例获取任何你想要的客户端连接,服务器级别的操作和逻辑应该定义在此类之中. 第一步:创建你的AppSession 为什么要创建AppSess…
什么是SuperSocket SuperSocket(下文简称SS)是一个轻量级, 跨平台而且可扩展的 .Net/Mono Socket 服务器程序框架.你无须了解如何使用 Socket, 如何维护 Socket 连接和 Socket 如何工作,但是你却可以使用 SuperSocket 很容易的开发出一款 Socket 服务器端软件,例如游戏服务器,GPS 服务器, 工业控制服务和数据采集服务器等等. 功能特点 高性能的事件驱动通信; 非常简单易用; 你只需要通过创建几个类就能获得一个健壮的 S…
如何快速启动第一个程序 既然是快速入门,所以,对于太深奥的知识点将不做讲解,会在后续的高级应用章节中,会对SS进行拆解.所有的实例90%都是来自SS的实例,外加本人的注释进行讲解. 一般应用而言,你只需掌握五点就够了,如果SS内置的协议模板已经够用,你可以无视第5条. 如何配置AppServer的启动信息(如端口.字符编码等等.) 至少掌握一种启动SS的方式. 建立自己的应用服务器. 掌握命令和命令加载器. 掌握如何实现自定义协议 下面是一个简单启动SS的方法,并向请求的客户端发送欢迎词的例子,…
上一篇博客SuperSocket学习笔记(一)说明了怎么快速搭建一个服务器端,这篇文章我想深挖一下SuperSocket 1. 每一个客户端连接到服务器端时,服务器端会将客户端的信息保存到一个Session(会话)中,即将客户端看成会话(一个服务器端对应于N个Session(客户端)) 在执行命令时,有两个参数:session,StringRequestInfo: session存储客户端信息(重写之后可以包含userid) StringRequestInfo是传过来的数据(从客户端) 2. 使…
这是根据我自己学习的经历整理出来的,如有不对之处,还请多多指教! SuperSocket源码下载 SuperSocket文档 安装并启动Telnet 学习方法: QuickStrart + 文档 参考资料: 服务器架设:    http://blog.csdn.net/kuanzai123/article/details/17013213     基本认识:        http://blog.qiangk.com/2013/08/03/learning-supersocket-opensou…
一 简介 这里主要说明从配置系统引导启动SuperScoekt作为应用程序,且以控制台程序方式启动 二 启动过程 2.1 配置解析 从读取配置文件开始,直接拿到一个SocketServiceConfig对象,这个类型封装了SuperSocket的所有配置,其主要包含了一下参数 1)服务器根配置 配置节点 "superSocket" SuperSocket 配置的根节点,它定义了 SuperSocket 所需要的全局参数. 让我们先看下根节点的所有配置属性: maxWorkingThre…
一 简述 Tcp消息的处理本身是与Tcp消息传输过程独立的,是消息的两个不同阶段,从前面的会话生命周期我们已经知道消息的传输主要有SocketSession实现,而真正处理则交由AppSession实现,SuperSocket的层次划分也是非常清晰明了. SuperSocket消息处理主要流程:接收=>原始过滤=>协议解析=>命令路由并执行=>找不到命令则直接一分不动发给客户端 二 消息接收 1 开始接收 代码位置:AsyncSocketSession=>StartRecei…
一 基本概念 会话(Session)是客户端与服务器进行通信的基本单元,也是一个Socket的封装,在http协议中也有Session机制,其主要作用封装一个通信单元socket,负责服务器与客户端消息发送与接收,会话之间相互独立互不干扰且拥有唯一SessionId标识,维护着客户与服务器通信的生命周期. 二 SocketSession SocketSession是SuperSocket建立在消息收发层的会话,其主要作用在于客户与服务器通信,其生命周期主要由创建,初始化,启动,运行,关闭过程组成…
一 继承Net配置系统 Net应用程序配置机制跟程序集引用大致类似,均具有继承性,如iis几乎每个应用程序都会有一个Web.config,比如我们使用vs2012以上版本创建一个web应用程序会自带一个web.config配置文件,这个配置文件属于整个应用程序全局配置文件,再有某些个别目录下也会存在web.config这样的配置文件,连名字都跟应用程序配置文件相同,那么他们看起来重复出现,到底是为何? Net的配置具有继承性,怎么理解?比如当前文件夹所拥有的配置则作用范围仅为当前文件夹,如果没有…
一 简介 官方介绍:SuperSocket 是一个轻量级, 跨平台而且可扩展的 .Net/Mono Socket 服务器程序框架.你无须了解如何使用 Socket, 如何维护 Socket 连接和 Socket 如何工作,但是你却可以使用 SuperSocket 很容易的开发出一款 Socket 服务器端软件,例如游戏服务器,GPS 服务器, 工业控制服务和数据采集服务器等等. 地址:http://www.supersocket.net/ 目前所阅读的版本是:1.6.4.0 本笔记的基本思路为:…
一 简介 官方介绍:SuperSocket 是一个轻量级, 跨平台而且可扩展的 .Net/Mono Socket 服务器程序框架.你无须了解如何使用 Socket, 如何维护 Socket 连接和 Socket 如何工作,但是你却可以使用 SuperSocket 很容易的开发出一款 Socket 服务器端软件,例如游戏服务器,GPS 服务器, 工业控制服务和数据采集服务器等等. 地址:http://www.supersocket.net/ 目前所阅读的版本是:1.6.4.0 本笔记的基本思路为:…
学习SuperSocket 必须要注意的 代码是 static void Main(string[] args) { WebSocketServer appServer = new WebSocketServer(); )) //端口 { Console.WriteLine("端口错误!"); Console.ReadKey(); return; } appServer.NewSessionConnected += new SessionHandler<WebSocketSess…
有一些企业由于以前使用的操作系统是被淘汰的操作系统,例如OpenVMS.现需要将针对openvms开发的通讯程序进行移植到现在的windows操作系统上,通过一段时间的了解,现在需要花时间去找商业性的通讯框架,发现了一款框架实用性比较高,给大家推荐一下. SuperSocket 是一个轻量级的可扩展的 Socket 开发框架,可用来构建一个服务器端 Socket 程序.而无需了解如何使用 Socket,如何维护Socket连接,Socket是如何工作的.该项目使用纯 C# 开发,易于扩展和集成到…
本文的控制台项目是根据SuperSocket官方Telnet示例代码进行调试的,官方示例代码:Telnet示例. 开始我的第一个Telnet控制台项目之旅: 创建控制台项目:打开vs程序,文件=>新建=>项目 一.下载SuperSocket的动态库,主要有两种方式获取SuperSocket的动态库. 1.添加SuperSocket的dll文件(SuperSocket.Common.dll, SuperSocket.SocketBase.dll, SuperSocket.SocketEngine…
      在上一篇文章中,我们已经了解到了如何在SuperSocket处理客户端请求. 同时我们可能会发现一个问题,如果我们的服务器端包含有很多复杂的业务逻辑,这样的switch/case代码将会很长而且非常难看,并且没有遵循面向对象设计的原则(OOD). 在这种情况下,SuperSocket提供了一些让我们在多个独立的类中处理各自不同的请求的命令框架,接下来我们一起来看一下怎么使用     1.自定义AppSession      AppSession 代表一个和客户端的逻辑连接,基于连接的…
    在SuperSocket入门(二)中我们已经简单了解了通过配置App.config文件使用BootStrap启动SuperSocket服务.我们先来看一下上个案例中的基本配置文件示例: <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!--log 日志记录--> <section name="log…
         Socket里面的协议解析是Socket通讯程序设计中最复杂的地方,如果你的应用层协议设计或实现不佳,Socket通讯中常见的粘包,分包就难以避免.SuperSocket内置了命令行格式的协议CommandLineProtocol,如果你使用了其它格式的协议,就必须自行实现自定义协议CustomProtocol.看了一篇文档之后, 你可能会觉得用 SuperSocket 来实现你的自定义协议并不简单. 为了让这件事变得更容易一些, SuperSocket 提供了一些通用的协议解…
SuperSocket基础(二)-----一个完成SocketServer项目 由于时间关系未能及时更新,关于SuperSocket,对于初学者而言,一个SuperSock的Server真的不好写.官方文档写的很清晰,如何接受客户端发来的二进制报文并做响应的解析.下面就从一个完整的项目出发,记录SuperSocket的开发过程. 1.项目场景:现有十多个RTU设备,用来监测自来水管的压力和流量,需要将十多个传感器传来的值接收并做解析来使用.用SuperSocket写一个Socket服务器,实时监…