【问题标题】:Tic-Tac-Toe Multiplayers with ASP.NET and SignalR. Create and send message to a group?带有 ASP.NET 和 SignalR 的井字游戏多人游戏。创建并向群组发送消息?
【发布时间】:2016-01-28 20:54:56
【问题描述】:

例如,我有这个链接 /Site/Tris/tris.aspx?sessionId=8a657a7b15ee44c39063c8ae45a6ed3b

这是js代码:

<script type="text/javascript">
    $(function () {
        // Declare a proxy to reference the hub. 
        var proxy = $.connection.myHub;

        proxy.client.test = function () {
            $('input').hide();//for testing
        };

        // start connetion
        $.connection.hub.start(function () {
            var sessionId = $(document).getUrlParam("sessionId");
            proxy.server.joinGroup(sessionId);
        });
    });
</script>

这是枢纽:

 public void JoinGroup(string groupName)
    {
        this.Groups.Add(Context.ConnectionId, groupName);
    }
public void test(string x)
        {
            Clients.Group(x).test();
        }

这是我做一个步骤时的aspx代码:

 protected void Image_Click(object sender, ImageClickEventArgs e)
    {
        string s = "8a657a7b15ee44c39063c8ae45a6ed3b";

        IHubContext context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
        context.Clients.Group(s).test();
    }

当我调用 context.Clients.Group(s).test();在 js 中返回到 $.connection.hub.start 并重新加入组中,并且不调用 test() ! 为什么?我该怎么办? 谢谢

【问题讨论】:

    标签: javascript c# asp.net signalr


    【解决方案1】:

    原因是当我点击一张图片并且 ASPX 中有一个事件时,它会发送一个 POST 请求,因此页面会在之后立即刷新

     proxy.client.test = function () {
                $('input').hide();//for testing
            };`
    

    被调用。 我必须仅使用 js 来完成所有这些操作,避免 POST 请求和刷新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-08
      相关资源
      最近更新 更多