使用ajax将数据从客户端发送到本地主机中的客户端

时间:2018-11-14 10:30:51

标签: javascript c# jquery .net ajax

我想制作一个四连网游戏,并可以选择与通过本地主机(在同一WiFi内)托管的连接到我的游戏的另一个人在线玩。可以在两台计算机上玩游戏,但不能彼此对抗。

首先,我想通过ajax调用将一个简单的字符串从一个客户端发送到另一个客户端。我的尝试:

$(".column").click(function () {
      $.ajax({
          url: "GetBoard",
          method: "GET",
          data: { "currentplayer" : currentPlayer },
          success: function (data) {
              alert("success");
          }
      });
)};

我使用的控制器方法:

[HttpPost]
public ActionResult GetBoard(string currentPlayer)
{
    return View(currentPlayer);
}

我不太了解如何使用ajax发送数据或如何在控制器中接收和使用数据。

1 个答案:

答案 0 :(得分:4)

为了使应用程序可以通过wifi网络使用,您可以执行以下步骤。

第1步

Publish您在本地主机上的应用程序,因此,如果其他用户在同一网络上,则他们可以使用侦听端口浏览本地主机。 示例:localhost:8733

第2步

您可以使用SignalR实时广播游戏更改,以便同一本地主机上的其他用户可以看到更改。

示例

如果您要广播特定ID的移动,则可以创建这样的中心类

 public class GameHub : Hub
{
    public void Send(string move, int Id)
    {
        // Call the addNewMessageToPage method to update clients.
        Clients.All.addNewMessageToPage(move,Id);
    }
}

HTML

 <script>
    $(function () {
        // Reference the auto-generated proxy for the hub.  
        var chat = $.connection.chatHub;

     //this will write to page
        chat.client.addNewMessageToPage = function (move, Id) {

        console.log("New move "+move);
                console.log("New Id "+Id);

        };


        // Start the connection.
        $.connection.hub.start().done(function () {
   //this will broadcast move to all pages
            $('#broadcast').click(function () {
                 chat.server.send($('#currentmove').val(), $('#currentId').val());

            });
        });
    });

</script>