[英]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.