我正在使用代码来侦听asp.net应用程序中的tcp侦听器,而侦听tcp我们在asp.net中使用线程或任务来侦听需要更改ui值的特定值。 我尝试了 scriptmanager 注册脚本和 ui 元素更新都不起作用。对于 WPF,我们使用调度程序调用。在 asp.net 中我们也需要类似的方法。当我们在asp.net中监听tcp监听器中的值时,我需要更新ui
您不共享任何代码,或者如何连接部分网络连接和监听代码。
但是,请记住,服务器通常不会与用户浏览器通信或发送信息。网页的任何更新都需要所谓的页面生命周期,或“往返”。
因此,要更新网页上的简单文本框,您可以点击“提交”,然后页面会传输到服务器。用户看到的是浏览器等待“旋转”。在服务器端,服务器上的网页“DOM”可以通过服务器代码进行修改。
在此类更改期间,用户不会也不会看到服务器上的网页发生任何更改。一旦服务器端代码完成运行并对浏览器进行更改,网页就会返回客户端。
此往返概念很重要,因为您的服务器端代码在此往返期间永远不会与最终用户交互。
服务器代码因此可以对服务器上的浏览器副本进行 1 次更改或 20 次更改。最终用户不会看到任何更改。
只有在所有更改完成后,整个网页才会返回客户端,然后进行渲染和显示。
上述内容意味着很多事情,但最重要的是您因此需要运行/拥有/使用一些客户端 JavaScript 来池化服务器。为了进一步推进这个概念,您可以设置所谓的 Web 套接字连接到浏览器。
创建并采用与浏览器的实时 Web 套接字连接现在将允许您的服务器端代码将内容“推送”到浏览器,并且您不必依赖网页往返。
虽然许多人推出自己的软件来管理网络套接字?设置和维护网络套接字可能需要一些工作,因此不要重新发明轮子。那么对于网络浏览器的实时更新(从服务器端代码),例如某些聊天系统,每个用户都可以看到其他人实时键入?
然后采用一个预制库来为您管理网络套接字。
因此,常见的方法是使用 .net 的 SignalR 库。
您可以使用此库学习并采用与浏览器的实时连接:
https://learn.microsoft.com/en-us/aspnet/signalr/overview/getting-started/