Работа над чатом php / ajax - PullRequest
3 голосов
/ 23 октября 2011

Я работал над системой чата ajax / php, где пользователи, очевидно, могут общаться друг с другом. Меня беспокоит нагрузка на сервер. Первоначально он был запрограммирован так: автоматическое обновление div (окно чата) каждые x секунд. Это было сделано только в том случае, если пользователь был активен по истечении времени ожидания. Если они оставались неактивными в течение 10 минут или около того, их показывали как бездействующие, тогда система прекращала бы обновление. Затем я посмотрел на Server-Sent Events с HTML5, который работал хорошо, но не все браузеры работают с этим.

У кого-нибудь есть лучшее решение, или div div сейчас исправен? Надеюсь, что кто-то может помочь, спасибо!

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

// jQuery Document
$(document).ready(function(){
});

//jQuery Document
$(document).ready(function(){
	//If user wants to end session
	$("#exit").click(function(){
		var exit = confirm("Are you sure you want to end the session?");
		if(exit==true){window.location = 'index.php?logout=true';}		
	});
});

//If user submits the form
$("#submitmsg").click(function(){
		var clientmsg = $("#usermsg").val();
		$.post("post.php", {text: clientmsg});				
		$("#usermsg").attr("value", "");
		loadLog;
	return false;
});

function loadLog(){		
	var oldscrollHeight = $("#chatbox").attr("scrollHeight") - 20; //Scroll height before the request
	$.ajax({
		url: "log.html",
		cache: false,
		success: function(html){		
			$("#chatbox").html(html); //Insert chat log into the #chatbox div	
			
			//Auto-scroll			
			var newscrollHeight = $("#chatbox").attr("scrollHeight") - 20; //Scroll height after the request
			if(newscrollHeight > oldscrollHeight){
				$("#chatbox").animate({ scrollTop: newscrollHeight }, 'normal'); //Autoscroll to bottom of div
			}				
	  	},
	});
}

setInterval (loadLog, 1000);
</script>
0 голосов
/ 26 октября 2011

Рассмотрите возможность использования COMET или посмотрите на Ajax Push Engine: Ссылка

Пример системы чата с использованием COMET: Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...