Hello @Z!
Complementing Geoffrey response above, focusing in Ext.NET 5:
We have an example that currently works using SignalR at
SignalR > Basic > Stock Ticker. You may use that for reference.
But we don't really have any example to this specific use case. Ext.NET currently supports appending components within containers, so you can just create your own "chat baloon" component and keep appending it as new messages come. And maybe remove very old message baloons if the chat history tends to get long.
As for checking for new messages without full a page reload you can either make asynchronous ajax requests to the server from time to time, use SignalR as the example above, or implement a solution to that using Web Sockets (if you want to avoid SignalR API for Web Sockets). Web sockets is still a current technology and I see
it has support for it in ASP.NET Core, including SignalR API itself. So it feels safe to rely on the technology for nowadays applications.
As long as you can host .NET Framework 4.5+ websites, you can use Web Sockets (and SignalR). If you want support to very old .NET framework, you may be able to employ an external WebSockets server, or just employ stateless asynchronous ajax requests just to fetch new messages in the running chat session.
If you start something in one or another approaches and get stuck with Ext.NET communicatiuon, we may try to help you, so if you start on very simple chat app (like, just something that fetches current date/time every time interval) to share as test case may help.
Hope this helps!