당신이 중 하나를해야 할 count.php입니다 -
- 가 주기적으로 아약스 업데이트를 확인하기 위해 전화를 걸에게 가치 (이것은 현재하고있는 일입니다.) - 사용자가 매우 오랫동안 연결될 것이라는 잘못된 생각입니다.
- 또는 더 좋은 해결책은 HTML5 web sockets을 대신 사용하는 것입니다.
socket.io과 같은 프로젝트는 자바 스크립트 서버 (노드)에서 웹 소켓을 구현하기가 매우 쉽습니다. 그러나 PHP에는 몇 가지 옵션이 있습니다. -
- Ratchet - socket.io와 유사하지만 PHP 용으로 제작되었습니다.
- Elephant.io - 또한 웹 소켓의 PHP 구현이지만 서버에서 작동하도록 설계된 ws '클라이언트'입니다. 따라서 서버에 node와 socket.io를 배포하고 elephant.io를 사용하여 다른 클라이언트와의 웹 소켓 통신을 처리해야 할 수도 있습니다.
- phpsocket.io - "Workerman을 기반으로 PHP에서 socket.io의 서버 측 대체 구현" - github 페이지에 따르면
phpsocket.io에 대한 많은 문서는 없지만 API는 readme의 예제에서 충분히 간단합니다.
<?
use PHPSocketIO\SocketIO;
// listen port 2021 for socket.io client
$io = new SocketIO(2021);
$io->on('connection', function($socket)use($io){
$socket->on('get count', function($msg)use($io){
$num_rows = mysql_num_rows($result);
$io->emit($num_rows, $msg);
});
});
을하고 client--
var count = 0;
// check if browser supports websockets
if ("WebSocket" in window) {
var ws = new WebSocket("ws://yourdomain.com:2021/");
ws.onopen = function() {
// Web Socket is connected, send data using send()
ws.send("get count");
};
ws.onmessage = function (evt) {
var received_msg = evt.data;
json_object = JSON.parse(response)
count = json_object.count
$("#database-results").text(count);
};
}
에 * 면책 조항 - - 이런 식으로 뭔가가 당신을 위해 작동합니다 나는 위의 코드를 테스트하거나 전에 phpsocket.io 라이브러리를 사용하지 않았습니다. 따라서 코드가 작동하지 않을 수 있습니다. 또한 래칫 (Ratchet)은 더 성숙한 프로젝트로 보이므로 앱에 대해보다 강력한 솔루션을 원한다면 더 자세히 조사해야합니다.
나는 스레드 위의 정보를 많이 가지고있어 this 스레드. 그러나 몇 가지 정보가 있지만 몇 년 만에 구식이며 최고 등급의 응답은 오늘 최고의 솔루션을 제공하지 않습니다.
'dynamic'은 서버에서 db가 변경되거나 페이지의 어딘가에 표시되어야하고 2 초마다 (ajax 호출을 할 때) 업데이트해야 할 때 카운트가 자동으로 변경되어야한다는 것을 의미합니까? – charsi