【转】WCF和Socket开发中三端通信、异步、双工、保持长连接、断线重连等技术

http://www.cnblogs.com/fmp/archive/2011/12/08/2280352.html

最近在做一个服务器管理工具,我们简称为OPTools。功能大致包括服务器进程监控、游戏开关服、数据库备份、文件分发、服务器文件管理等等。

 

项目整体架构分为三端:客户端(多)←→中心服务器端(一)←→游戏服务器端(多)

 

①客户端:选择了Winform

②中心服务器端:使用Windows Service

③游戏服务器端:由于游戏服务器需要跨平台,有Windows的,有Linux的。所以不能DotNet来做,最终选择了脚本语言Python。

 

项目的技术瓶颈主要集中在通信上,我们准备了两个方案:

1.客户端(多)←socket→中心服务器端(一)←socket→游戏服务器端(多)

2.客户端(多)←WCF→中心服务器端(一)←socket→游戏服务器端(多)

中心与游戏服务器之间由于要跨语言,所以定下来使用socket通信。主要区别在与客户端和中心服务器端之间分别使用Socket和WCF进行通信。

 

开始我们选择了第一套方案,统一使用Socket进行通信。其中使用了博客园牛人:overred 的 shuttler.net 框架。 但是到监控和开关服功能开发基本完成的时候,发现通信过程中很不稳定,期间也出现了各种各样那一琢磨的问题。后来痛下决定,改为更为成熟的WCF进行通信。

 

其中涉及到了WCF和Socket中三端通信、异步、双工、保持长连接、断线重连等技术。

posted @ 2011-12-08 11:40  swjm119  阅读(1709)  评论(0编辑  收藏  举报