繁体   English   中英

如何使用SuperSocket将AppSession连接到服务器?

[英]How do I connect an AppSession to a server with SuperSocket?

我正在使用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) -函数。 如何使用? 会话仅知道服务器的IP和端口。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM