我想制作一个四连网游戏,并可以选择与通过本地主机(在同一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发送数据或如何在控制器中接收和使用数据。
答案 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>