热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#网络编程技术SuperSocket实战项目演练

一、SuperSocket课程介绍1.1、本期《C#网络编程技术SuperSocket实战项目演练》课程阿笨给大家带来三个基于SuperSocket通讯组件的实战项目演示实例:●

一、SuperSocket课程介绍

1.1、本期《C#网络编程技术SuperSocket实战项目演练》课程阿笨给大家带来三个基于SuperSocket通讯组件的实战项目演示实例:

● 基于SuperSocket开发的客户端和服务端聊天应用程序(ABenNET.SuperSocket.AppChat)。

● 基于SuperWebSocket开发的客户端和服务端聊天应用程序(ABenNET.SuperWebSocket.AppChat)。

● 基于SuperWebSocket开发的网页端和服务端聊天应用程序(ABenNET.SuperWebSocket.WebChat)

1.2、SuperSocket课程涉及覆盖的知识点

1.2.1、SuperSocket如何实现完善健康检查机制

1)、如何实现客户端和服务端保持心跳检查功能(HeartBeat;)。

2)、如何实现客户端与服务端断线重连功能(ReConnection)。

1.2.2、SuperSocket服务器几种配置方式介绍

1)、通过编码方式实现SuperSocket服务端配置。

2)、通过独立的Config配置文件方式实现SuperSocket服务端配置。

1.2.3、SuperSocket常见的几种宿主方式介绍

1)、控制台应用程序(Console)、WinForm、IIS等方式进行Socket服务端宿主。

2)、采用SuperSocket.SocketService.exe工具实现Windows服务方式进行Socket服务宿主。

1.2.4、SuperSocket和SuperWebSocket组件客户端SDK和服务端SDK的常用使用介绍。

1)、EasyClient、CustomTerminatorReceiveFilter、CustomAppServer、CustomAppSession、CustomCommand

2)、CustomWebSocketServer、CustomWebSocketSession、WebSocket

如果您对本期的课程感兴趣的话,那么请跟着阿笨一起学习吧!

废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。

二、SuperSocket介绍和实战项目截图

C#网络编程技术SuperSocket实战项目演练

WebSocket截图一

C#网络编程技术SuperSocket实战项目演练

WebSocket截图二

C#网络编程技术SuperSocket实战项目演练

SuperSocket客户端和服务端通讯截图

三、SuperSocket概念名称含义解释

3.1、SuperSocket是如何神圣?

官网解释:SuperSocket 是一个轻量级, 跨平台而且可扩展的 .Net/Mono Socket 服务器程序框架。你无须了解如何使用 Socket, 如何维护 Socket 连接和 Socket 如何工作,但是你却可以使用 SuperSocket 很容易的开发出一款 Socket 服务器端软件,例如游戏服务器,GPS 服务器, 工业控制服务和数据采集服务器等等。

阿笨理解:SuperSocket 是一个开源轻量级跨平台而且可扩展的.NET高性能通讯中间件。

3.2、什么是Socket?

Socket的英文原义是“孔”或“插座”。网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

3.3、什么是SuperSocket?

SuperSocket(简称SS)是一个轻量级的可扩展的 Socket 开发框架,可用来构建一个服务器端 Socket 程序,而无需了解如何使用 Socket,如何维护Socket连接,Socket是如何工作的。该项目使用纯 C# 开发,易于扩展和集成到已有的项目。只要你的已有系统是使用.NET开发的,你都能够使用 SuperSocket来轻易的开发出你需要的Socket应用程序来集成到你的现有系统之中。

3.4、什么是WebSocket?

WebSocket 协议本质上是一个基于 TCP 的协议。为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,其中附加头信息”Upgrade: WebSocket”表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。

3.5、为什么会有WebSocket?

WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,由于HTTP是不支持持久连接的基于现有的HTTP之上的一些技术(如长轮询Polling、Comet)并满足不了这种持久连接(TCPConnection)需求,有必要定义一个全新的协议。

3.6、什么是SuperWebSocket?

SuperWebSocket是基于.NET开源Socket框架SuperSocket开发的, SuperSocket所支持的大部分功能在SuperWebSocket中得到了继承。用户可通过SuperWebSocket来快速的构建可靠的,高性能的websocket服务器端应用程序。和SuperSocket一样,SuperWebSocket可以控制台和windows服务的形式运行,同时它还支持直接运行在Website之内,这样更简化了用户的部署。

下面是主流浏览器对 HTML5 WebSocket 的支持情况:

C#网络编程技术SuperSocket实战项目演练

WebSocket浏览器支持情况

3.7、Socket和WebSocket两者有什么区别和联系?

两者区别:WebSocket是HTML5下一种新的协议。它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的。它与HTTP一样通过已建立的TCP连接来传输数据,但是它和HTTP最大不同是:

1)、WebSocket是一种双向通信协议。在建立连接后,WebSocket服务器端和客户端都能主动向对方发送或接收数据,就像Socket一样;

2)、WebSocket需要像TCP一样,先建立连接,连接成功后才能相互通信。

两者联系:可以把WebSocket想象成HTTP,HTTP和Socket什么关系,WebSocket和Socket就是什么关系。

四、SuperSocket安装手册

为什么要单独出一节关于supersocket的安装手册?由于supersocket经历了很多的版本的迭代,作为初学者的童鞋可能按照官方文档使用的过程中难免出现程序集引用出现混乱的情况。特别阿笨明白大家的痛点,故特别给大家总结了一下使用supersocket过程中需要注意的事项。

关于supersocket组件nuget主页下载地址

https://www.nuget.org/profiles/kerryjiang 大家千万别下错了。

一、SuperSocket

1)、SuperSocket 服务端(Server)

github下载地址:https://github.com/kerryjiang/SuperSocket

nuget下载地址:https://www.nuget.org/packages/SuperSocket/

SuperSocket.Engine 服务引擎 (必须安装)

nuget下载地址:https://www.nuget.org/packages/SuperSocket.Engine/

2)、SuperSocket.ClientEngine 客户端(Client)

gitbub下载地址:https://github.com/kerryjiang/SuperSocket.ClientEngine

nuget下载地址:https://www.nuget.org/packages/SuperSocket.ClientEngine/    

特别说明:关于客户端client engine版本0.7.0.1以后的版本就不再是使用AsyncTcpSession对象而是使用EasyClient对象Install-Package SuperSocket.ClientEngine.Core -Version 0.7.0.1  ,而在0.7.0.1版本中既使用了EasyClient也使用了AsyncTcpSession。不知道为什么新的版本作者把它给阉割了。有谁可以回答一下我的这个问题吗?

二、SuperWebSocket

SuperSocket通讯组件支持WebSocket协议。

1)、SuperSocket.WebSocket 服务端(Server)

nuget下载地址:https://www.nuget.org/packages/SuperSocket.WebSocket/

千万不要再使用SuperWebSocket这个老的版本了,现在已经独立出来啦。

SuperWebSocket nuget下载地址:https://www.nuget.org/packages/SuperWebSocket/

2)、WebSocket4Net客户端(Client)

github下载地址:https://github.com/kerryjiang/WebSocket4Net

nuget下载地址:https://www.nuget.org/packages/WebSocket4Net/

SuperSocket.ClientEngine客户端引擎 (必须安装)

3)、 WebSocket 客户端的 Javascript API

● HTML5定义的WebSocket

● Socket.io

● sockjs

五、ABenNET.SuperSocket.AppChat实战演练源代码在线演示和解读

●  基于SuperSocekt实现客户端和服务端通信

六、ABenNET.SuperWebSocket.AppChat实战演练源代码在线演示和解读

● 基于SuperWebSocekt实现客户端和服务端通信

七、ABenNET.SuperWebSocket.WebChat实战演练源代码在线演示和解读

● 基于SuperWebSocekt实现WEB网页端和服务端通信

八、小结(Q&A)

● 我们到底选择哪一款开源的Socket框架?(详细文章介绍可以关注跟着阿笨一起玩NET×××公众号ABentDotNet)

1、这个需要大家结合自身的项目场景来决定了;如果您的项目场景不复杂,只需要实现客户端和服务端进行通信但又想上手简单的话,那么推荐使用FS;如果您的项目应用场景比较复杂,比如需要自定义通讯协议,需要支持WebSocket、多服务器实例托管,部署灵活性等等一些高级复杂的功能,那么推荐使用SS。

2、两款Socket框架作为NET学习网络编程技术都是值得推荐学习的。

● 阿笨希望带来的自己对Scoket网络编程技术的一些理解和认识吧,力争将Socket技术的真真干货内容分享给大家。这就是阿笨的课程与市面上最大的不同点,"理论+实战相结合"+"从实战从来到实战中去",学完后直接将学习成果运用到实际项目中去!

九、《C#网络编程技术SuperSocket实战项目演练》在线观看

【网易云课堂】:点击在线观看

【腾讯课堂】:点击在线观看

【微信公众号】:跟着阿笨一起玩NET




推荐阅读
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 在IIS上运行的WebApi应用程序在开发环境中能够正常进行文件的读写操作。然而,在尝试通过FTP访问实时服务器上的文件列表时,遇到了无法显示的问题,尽管服务器配置与开发环境相同。这可能涉及权限设置、FTP服务配置或网络连接等方面的问题。 ... [详细]
  • IIS 7及7.5版本中应用程序池的最佳配置策略与实践
    在IIS 7及7.5版本中,优化应用程序池的配置是提升Web站点性能的关键步骤。具体操作包括:首先定位到目标Web站点的应用程序池,然后通过“应用程序池”菜单找到对应的池,右键选择“高级设置”。在一般优化方案中,建议调整以下几个关键参数:1. **基本设置**: - **队列长度**:默认值为1000,可根据实际需求调整队列长度,以提高处理请求的能力。此外,还可以进一步优化其他参数,如处理器使用限制、回收策略等,以确保应用程序池的高效运行。这些优化措施有助于提升系统的稳定性和响应速度。 ... [详细]
  • 公司有个系统,比较古老,web端使用的是applet,applet作为socketclient端。另一台服务器运行socketserver.当多次执行某一个特定事务时(通过Applet,该事务会触 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细介绍了如何在PHP中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
  • 本文以 www.域名.com 为例,详细介绍如何为每个注册用户提供独立的二级域名,如 abc.域名.com。实现这一功能的核心步骤包括:首先,确保域名支持泛解析,即将 A 记录设置为 *.域名.com,以便将所有二级域名请求指向同一服务器。接着,在服务器端使用 ASP.NET 2.0 进行配置,通过解析 HTTP 请求中的主机头信息,动态识别并处理不同的二级域名,从而实现个性化内容展示。此外,还需在数据库中维护用户与二级域名的对应关系,确保每个用户的二级域名都能正确映射到其专属内容。 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • 如何设置域名默认301重定向至www前缀
    在进行域名默认301重定向至www前缀的操作前,确保你已经拥有一个有效的域名,并且该域名已正确解析到外部主机地址,能够正常访问网站。本文主要针对IIS 7及以上版本的用户,IIS 7之前的版本不适用。我们将详细介绍如何通过IIS管理器配置301重定向,确保所有请求都能自动跳转到带有www前缀的URL,从而提升网站的SEO效果和用户体验。 ... [详细]
  • 注:写博客或者项目的README文档经常用到markdown语法,所以markdown的语法做了一个总结,本文是基于【markdown】基 ... [详细]
  • 在IIS环境中部署Go API应用:Golang面试指南
    这篇文章介绍了在IIS上部署Go API项目的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
author-avatar
cyweinyE
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有