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

Posted

技术标签:

【中文标题】使用ajax在本地主机内将数据从客户端发送到客户端【英文标题】:Send data from Client to Client within localhost with ajax 【发布时间】:2019-04-17 07:01:23 【问题描述】:

我想制作一个四人连接游戏,可以选择在线与另一个连接到我的游戏的人对战,该游戏是通过 localhost(在同一个 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 发送数据或如何在控制器中接收和使用它。

【问题讨论】:

[HttpPost],方法:“GET”,你看出有什么不同了吗? :) 在这种情况下最好使用 websockets。 【参考方案1】:

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

步骤#1

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

步骤#2

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

示例

如果你想广播特定 ID 的移动,那么你可以像这样创建你的 hub 类

 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>

【讨论】:

非常感谢!这就是我一直在寻找的答案! 很高兴为您提供帮助。

以上是关于使用ajax在本地主机内将数据从客户端发送到客户端的主要内容,如果未能解决你的问题,请参考以下文章

从 VPC 内将“禁止”异常发布到 API Gateway Websocket API

如何在不使用处理程序的情况下使用 ajax 从客户端将文件发送到服务器端?

从我的本地主机客户端发出请求而没有 cors 错误

我无法使用 AJAX (XMLHttpRequest) 获取 responseXML

将裁剪的图像发送到数据库 ajax 在客户端和服务器上的 PHP

保存Ajax但不将CORS cookie从127.0.0.1发送到服务