0

我正在使用 SuperSocket 设置一个新的客户端-服务器-网络,并且无法AppSession连接到服务器。

我发现了这个问题并为我的程序尝试了它。

服务器运行良好,但目前我只能连接“AsynTcpSession”。当我检查连接的会话时,它在服务器上显示为“AppSession”。我想使用“AppSession”,因为你可以给他们自定义参数。

我创建的 AppSession:

public class MyAppSession : AppSession<MyAppSession, MyRequestInfo>
{
// those parameter
public int ClientKey { get; set; }

public string HashKey { get; set; }
}

服务器:

MyAppServer _server = new MyAppServer();
ServerConfig _socketServerConfig = new ServerConfig { ReceiveBufferSize = 5000, MaxRequestLength = 5000, Name = "Test- Server", SendingQueueSize = 5000, ServerType = "MyAppServer", Port = 6000};

if (_server.Setup(_socketServerConfig))
{
DoStuff();
}

客户:

ClientSession _gateway = new AsyncTcpSession();
_gateway.Connect(6000);

在收到客户的电报时:

private void ReceivedDataFromClient(MyAppSession session, MyRequestInfo requestinfo)
{
// session.SocketSession contains the Client AsynTcpSession
}

编辑:

AppSession一个void Initialize(IAppServer<TAppSession, TRequestInfo> appServer, ISocketSession socketSession)-Function。我该如何使用它?会话只知道服务器 ip 和端口。

4

1 回答 1

0

AsynTcpSession 和 AppSession 是不同的东西,尽管它们都被称为“会话”。

任何客户端连接包/类都与 AppSession 无关。(例如,AsynTcpSession)

AppSession 只是 AppServer 的客户端连接的临时存储。让 AppServer 控制客户端连接,识别每个客户端,控制连接池……等等。您可以在 AppSession 中定义许多变量,但分配值仍将由您自己的代码(并且客户端应发送这些信息)。

于 2019-08-20T05:57:53.087 回答