ESFramework 4.0 快速上手(01) -- Rapid引擎

时间:2021-12-03 03:53:11

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(后面会给出下载地址)中的代码是这样的: