我正在尝试将所有用户同时重定向到游戏页面,但我没有成功。我该如何同步它们?
我尝试过使用JAVASCRIPT中的eventSource,但仍无法将它们全部放入游戏中。一次只能重定向一个。是否有任何功能,框架或其他可能有助于同时重定向所有玩家的东西?
<script>
if(typeof(EventSource) !== "undefined") {
var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
document.getElementById("result").innerHTML += " <?php startGame(); ? >";
}
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not support server-sent events...";
}
</script>
答案 0 :(得分:0)
您的客户端javascript代码应该监听用户定义的“开始游戏”事件:
if (typeof(EventSource) !== "undefined") {
var source = new EventSource("demo_sse.php");
source.addEventListener("startgame", function(e) {
// Start the game
// e.g. document.location.href = '...';
}, false);
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not support server-sent events...";
}
您的服务器的demo_sse.php需要回复
event: startgame\n
data: ...\n\n
备注:您需要一个能够处理长时间保持打开状态的HTTP连接的Web服务器(这是EventSource在等待新事件时所做的事情)。如果您使用传统的HTTP服务器(如Apache),那么处理您的HTTP请求的线程池将很快被填满,如果您不将连接到服务器的并发播放器数量限制为只有少数几个。
如果服务器端PHP脚本在发送回复后关闭连接,则默认情况下,客户端将在超时5秒后重新连接。如果您的PHP脚本始终关闭连接,则您的EventSource将降级为轮询机制,刷新间隔为5秒。