Have you looked at websockets?
They're used to create persistent two-way connections between a client & server:
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/websockets?view=aspnetcore-6.0
Here's a full working example of an .NET MVC app with a websocket enabled:
https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/fundamentals/websockets/samples/6.x/WebSocketsSample
When the user visits the site they're served up wwwroot/index.html
which establishes a websocket connection with websocket server endpoint listening on the /ws
URL on the backend.
The server then awaits messages from the client in a loop & echos the same message back to the client:
That's where your chatbot can take over.