2017-03-18 50 views
2

我準備了最簡單的方法在香草JavaScript中的AJAX長輪詢(實時),沒有任何類似jQuery的庫... 該代碼基於data.txt的timestamp通過PHP文件server.php閱讀(這就是全部)。現在基於vanilla的websocket最簡單的方法JS AJAX長輪詢

function realtime(timestamp) { 
    var xhr = new XMLHttpRequest(); 

    xhr.open('GET', 'server.php' + (typeof timestamp !== 'undefined' ? '?timestamp=' + timestamp : ''), true); 
    xhr.onreadystatechange = function() { 
     if (xhr.readyState == 4 && xhr.status == 200) { 
      var result = JSON.parse(xhr.responseText); 

      document.getElementById('response').innerHTML = result.content; 

      realtime(result.timestamp); 
     } 
    }; 
    xhr.send(); 
} 

realtime(); 

,我想知道如何在websocket準備類似的例子(沒有任何圖書館,只需清潔JS/PHP)。

有可能嗎?

+2

是的,如果沒有的話 - 沒有提供websocket支持的庫。在沒有庫的情況下實現套接字是一種痛苦,你爲什麼要重新發明輪子? – baao

+0

@baao我想知道從小學的websocket,而不是重塑輪:) – kicaj

+0

那麼,只要閱讀websocket API的規範和文檔,這些會給你所有你想要的信息。 – baao

回答

0

Websocket是一種不同於HTTP的協議(它使用HTTP升級機制)。 所以你必須調整你的web服務器和任何反向代理等來處理websocket連接。