ESFramework/ESPlatform 4.0 的终极目标是为百万级的用户同时在线提供支持,因为强大,所以使用也较为复杂,配置也较多。但是如果我们的应用只是一个中小型的通信应用(同时在线5000人以下),直接使用ESPlatform就有点显得杀鸡用牛刀了。ESPlus.Rapid提供了一种快速的方式,来解决类似中小型的通信应用,以最简洁的方式来使用ESFramework。
使用ESPlus.Rapid来构建你的ESFramework通信程序,你只需要了解两个引擎(服务端引擎和客户端引擎)和几个组件的接口就可以了,上手非常容易。废话不多说,先来看看这两个引擎的接口。
一.迅捷的通信引擎
首先是服务端引擎:
/// <summary>
/// 迅捷的服务端引擎。基于TCP、使用二进制协议。
/// </summary>
public interface IRapidServerEngine
{
/// <summary>
/// 通过此接口,可以获取用户的相关信息以及用户上/下线的事件通知。
/// </summary>
ICoreUserManager UserManager { get; }
/// <summary>
/// 通过此接口,服务端可以发送广播消息和将目标用户从服务器中踢出,并关闭其对应的tcp连接。
/// </summary>
IBasicController BasicController { get; set; }
/// <summary>
/// 通过此接口,服务端可以主动向在线用户发送/投递自定义信息。
/// </summary>
ICustomizeInfoController CustomizeInfoController { get; }
/// <summary>
/// 完成服务端引擎的初始化,并启动服务端引擎。
/// </summary>
/// <param name="port">用于提供tcp通信服务的端口</param>
/// <param name="customizeHandler">服务器通过此接口来处理客户端提交给服务端(且最终目的地是服务端)的非转发消息。</param>
void Initialize(int port, ICustomizeInfoBusinessHandler customizeHandler);
/// <summary>
/// 完成服务端引擎的初始化,并启动服务端引擎。
/// </summary>
/// <param name="port">用于提供tcp通信服务的端口</param>
/// <param name="customizeHandler">服务器通过此接口来处理客户端提交给服务端(且最终目的地是服务端)的非转发消息。</param>
/// <param name="friendsManager">服务器通过此接口来获取好友关系,如此,比如当某用户上下线时,服务器会自动发送通知给其相关好友。</param>
/// <param name="groupManager">服务器通过此接口来获取某个分组内的成员列表信息,如此,可以发送广播信息。</param>
void Initialize(int port, ICustomizeInfoBusinessHandler customizeHandler, IFriendsManager friendsManager,IGroupManager groupManager);
/// <summary>
/// ConfigMainServerForm 可以为服务端提供默认的主窗体,该窗体用于显示在线用户相关数据、连接数、线程数等信息。
/// </summary>
/// <param name="form">默认的主窗体</param>
void ConfigMainServerForm(MainServerForm form);
/// <summary>
/// Close 关闭服务端引擎。
/// </summary>
void Close();
}
我们可以调用Initialize方法启动服务端引擎,比如demo(后面会给出下载地址)中的代码是这样的: