SuperSocket icon indicating copy to clipboard operation
SuperSocket copied to clipboard

使用2.0,如何记录每个sessionID的所有收发日志?

Open loveyeguo opened this issue 1 year ago • 5 comments

写在哪个地方比较好? 怎么写? 我是这么写的,但感觉不太好,有没有官方推荐写法?

loveyeguo avatar Jul 16 '24 02:07 loveyeguo

意思是说,无论我继承哪个IPipelineFilter,我想记录每个sessionID所有的收发日志,存到本地txt中

loveyeguo avatar Jul 16 '24 02:07 loveyeguo

在“IAppSession”中,并没有ReceiveAsync之类的方法

loveyeguo avatar Jul 16 '24 03:07 loveyeguo

想要一个类似这样的写法:

private void NewRequestReceivedHandler(SuperSocket.SocketBase.IAppSession session, SuperSocket.SocketBase.Protocol.BinaryRequestInfo requestInfo)
{
// 处理接收到的数据
string receivedData = Encoding.UTF8.GetString(requestInfo.Body);
Console.WriteLine($"Received data from session {session.SessionID}: {receivedData}");

// 可以在这里进行数据处理、响应等操作
}

loveyeguo avatar Jul 16 '24 04:07 loveyeguo

@kerryjiang

loveyeguo avatar Jul 17 '24 04:07 loveyeguo

这是你需要的吗?

var host = SuperSocketHostBuilder.Create<StringPackageInfo, CommandLinePipelineFilter>()
    .UsePackageHandler(async (session, package) =>
    {
        Console.WriteLine($"Received data from session {session.SessionID}: {package.Text}");
        await Task.Yield();
    })
    .Build();

await host.RunAsync();

kerryjiang avatar Aug 08 '24 06:08 kerryjiang