使用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 从客户端将文件发送到服务器端?
我无法使用 AJAX (XMLHttpRequest) 获取 responseXML