Skip to content
ScutGame edited this page Dec 15, 2014 · 5 revisions

Scut提供GameSocketHost类可以同时接收Socket和Http请求的处理。

  • MainClass脚本类
public class MainClass : GameSocketHost
{
    protected override void OnConnectCompleted(object sender, ConnectionEventArgs e)
    {
        Console.WriteLine("客户端IP:[{0}]已与服务器连接成功", e.Socket.RemoteEndPoint);
        base.OnConnectCompleted(sender, e);
    }

    protected override void OnDisconnected(GameSession session)
    {
        Console.WriteLine("客户端UserId:[{0}]已与服务器断开", session.RemoteAddress);
        base.OnDisconnected(session);
    }

    protected override void OnHeartbeat(GameSession session)
    {
        Console.WriteLine("{0}>>客户端的心跳包: {1} session count {2}", DateTime.Now.ToString("HH:mm:ss"), session.RemoteAddress, GameSession.Count);
        base.OnHeartbeat(session);
    }

    protected override void OnReceivedBefore(ConnectionEventArgs e)
    {
        //请求的源数据
        Console.WriteLine(Encoding.UTF8.GetString(e.Data));
        base.OnReceivedBefore(e);
    }

    protected override void OnRequested(ActionGetter actionGetter, BaseGameResponse response)
    {
        //这里处理玩家请求的业务
        Console.WriteLine(actionGetter.ToParamString());
        base.OnRequested(actionGetter, response);
    }

    protected override void OnStartAffer()
    {
        //这里处理服务启动后的业务
    }

    protected override void OnServiceStop()
    {
        //这里处理服务停止时的业务
        GameEnvironment.Stop();
    }
}
  • 配置

在项目中的GameServer.exe.config文件中增加以下,同时使用Socket和Http配置。

<add key="Game.Port" value="9001" />
  • 服务器推送消息

参考Action

Clone this wiki locally