繁体   English   中英

服务器到客户端的响应asp.net

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM