Scut AccountServer

开始以Scut搭建服务器框架:

1. 初始目录结构:

  • libs 存放 scut 的引擎文件;
  • release 存放 src 输出的文件;
  • src 存放各子工程源文件;

2. Install.bat:目的是将 libs 里 scut 的引擎文件复制到各工程上。

@echo off
xcopy /y .\libs\6.7.10.0\*.* .\src\AccountServerECHO Install Ok & PAUSE

3. 将 6.7.9.10 的引擎库文件复制到 libs。

4. 将 Middleware 中的 AccountServer 目录复制进来,执行一次 Install.bat。

5. 调整 AccountServer 对引擎库的引用位置。

6. AccountServer 发布:

  • 配置文件:命名配置文件;
  • 连接:发布方法 - 默认文件系统,再指定输出目录;
  • 设置:选择调试/运行模式 - 先选择调试模式,文件发布选项 - 发布前删除所有文件;
  • 发布;
  • 可见 Properties 目录下增加了发布文件;

7. IIS 建站:

  • 关键是指定好文件系统的物理地址即可;
  • 应用程序池版本要选正确;

8. 直接开启调试模式:

  • VS2013 - 调试 - 附加到进程 - 勾选“显示所有进程” - w3wp.exe(注意选择对应应用程序池名字的进程);
  • IIS 上点击浏览网站 - 可以进入断点;

9. 生成测试协议:

  Scut - 使用协议工具平台:https://github.com/ScutGame/Scut/wiki/ContractTools

10. 整理目标登陆流程:

对应的Scut指令:

  • Login:登陆
  • Passport:请求通行证与密码
  • Regist:注册
  • Password:游客改密码
  • Validate:校验Token
时间: 2024-11-05 22:43:57

Scut AccountServer的相关文章

scut AccountServer 使用mysql

1. appSettings 添加 <add key="Snscenter_ProviderType" value="MySqlDataProvider" /> <connectionStrings> <add name="SnsCenter" providerName="MySqlDataProvider" connectionString="server=192.168.1.5;da

Scut:脚本引擎

Scut 可以执行 C#.Python.Lua 三种类型的脚步,Scut 是如何加载并传递参数的呢? 首先值得注意的是:Scut 在编译时就会将逻辑层脚本源码复制到bin/Script的目录下. 1. ScriptRuntimeDomain.ScriptRuntimeScope.ScriptDomainContext public abstract class ScriptBaseScope : IDisposable { protected readonly ScriptSettupInfo

Scut 上线后遇到的问题

1. 上线后的大并发问题: var sem = new Semaphore(_accepts, _accepts); while (true) { sem.WaitOne(); #pragma warning disable 4014 _listener.GetContextAsync().ContinueWith(async (t) => { try { sem.Release(); var ctx = await t; await ProcessListenerContext(ctx, th

scut 125. 笔芯回文

https://scut.online/p/125 看数据量,这题可能是O(n^2)的dp 也可能是区间dp,但是区间dp一般复杂度是O(n^3),虽然也可以优化,但是比赛的时候那么多人"秒"了,应该不会是那么麻烦的. 套路:设dp[i]表示前i个字符中能拿到的最大贡献.dp[len]就是答案. 如果[L, R]这段区间能组成回文串,那么就有两种决策,删除或则不删除. 删除:dp[R] = dp[L - 1] + a[R - L + 1] 不:  dp[R] = dp[R]; 取个ma

Scut:从PackageReader分析客户端协议规则

看第一个解析API: private void ParseData(byte[] data) { var paramBytes = SplitBuffer(data); RawParam = _encoding.GetString(paramBytes); ParseParamString(RawParam); } 再看如何分隔数据包: private byte[] SplitBuffer(byte[] data) { int paramIndex = MathUtils.IndexOf(dat

Scut 的通用配置管理器

1. 配置节 ConfigSection private List<ConfigNode> _configNodes; public class ConfigNode { public ConfigNode() { } public ConfigNode(string key, string value) { Key = key; Value = value; } public string Key { get; set; } public string Value { get; set; }

scut和unity之间收发请求返回

前期首先配置好scut服务器,我在上篇博客中已经写到 1.在scut中设置协议,协议号100,版本号,设置请求参数String类型的userid和userpassword和返回参数的string字符串Content 2.将网页中显示的服务器代码copy到vs中命名为Action100的类中 using System; using System.Collections.Generic; using ZyGames.Framework.Game.Contract.Action; using ZyGa

Scut游戏server引擎Unity3d访问

Scut提供Unity3d Sdk包.便利的高速发展和Scut游戏server对接: 看Unity3d示为以下的比率: 启动Unity3d项目 打开Scutc.svn\SDK\Unity3d\Assets文件夹下的TestScene.unity项目文件,选中Main Camera.将TestGUI.cs文件拖动到Inspector窗体的Script,如图: 点击执行.例如以下: 文件夹层次说明 1)       Net层:封装Http与Socket请求操作,以及网络协议的数据解析和请求參数的打包

Scut:SocketListener 的解析

大致浏览了一遍,Scut 的网络模型采用的是 SAEA 模型, 它是 .NET Framework 3.5 开始支持的一种支持高性能 Socket 通信的实现. 通过分析 Scut 的套接字监听控制,就能大致明白它是如何使用 SAEA 架构的. 1. 套接字缓冲区内存管理器 先来看下 Scut 对套接字缓冲区的内存管理: class BufferManager { int capacity; byte[] bufferBlock; Stack<int> freeIndexPool; int c