[英]Server to Client response asp.net
我有一个场景,其中有两个服务器。 服务器1中的Web应用程序从真实的物理设备获取值。 物理设备发送一个值,例如Time =60。此值发送到托管另一个Web应用程序的服务器2。 在服务器2中,网页接收该值并显示一个标签,该标签从60(从服务器1接收的值)开始向下计数,直到显示给客户端的0。 从服务器1到服务器2中的Web应用程序的响应是异步的。 任何方向表示赞赏。 提前致谢
在服务器1的Web应用程序中,我已完成将“ 60的计时器值”发布到服务器2中的Web应用程序(../Test/Default.aspx)
protected void Page_Load(object sender, EventArgs e)
{
var response = Post.Data("server2/Test/Default.aspx", new NameValueCollection() {
{ "GameStart", "True" },
{ "Timer", "60" },
{ "GameStop", "True" },
{ "WinningNumber", "35" }
});
}
public static class Post
{
public static byte[] Data(string uri, NameValueCollection pairs)
{
byte[] response = null;
using (WebClient client = new WebClient())
{
response = client.UploadValues(uri, pairs);
}
return response;
}
}
现在在服务器2中,我已按照以下步骤进行操作以获取请求,同时也获得了价值。 但是它不显示lblTimer中的值,因为我相信页面已经呈现。 如何在标签中显示计时器
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.Form.Count > 0)
{
string Timer = Request.Form["Timer"];
lblTimer.Text = Timer;
}
}
}
听起来您的问题确实与更新已呈现的网页上的值有关。
看看使用SignalR 。 那里提供的教程将帮助您解决特定的问题。
在服务器2上,您将创建一个与Web客户端连接的集线器,并且每当服务器1将更新发送到服务器2时,您都将触发该集线器中的方法以将更新推送到呈现的网页。
上面带有计时器标签的网页将包含一个可从服务器触发的JavaScript事件处理程序。 然后,即使页面已呈现,JavaScript也将负责更新页面上的标签。 请看一下SignalR网站上的Stock Ticker教程 ,因为它与您要实现的目标相似。 听起来您的情况甚至没有股票选择器那么复杂。
Server2将把渲染的HTML页面返回给server1。 除非您编写一些代码,否则这不会更新server1呈现的HTML。
您需要解析返回的HTML,以提取所需的数据,然后将其显示在您需要的页面中。 如果您对server2拥有任何控制权,那么最好将此信息一起调用Web服务而不是网页。
另外,假设您的要求比陈述的要复杂,否则server1可以在发布到server2之后再处理计数器,我认为这只是开始游戏了?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.