簡體   English   中英

關閉socket.io上的套接字服務器端?

[英]Closing a socket server side on socket.io?

我很確定這是一個簡單的問題,但我不知道socket.io文檔在哪里,而http://labs.learnboost.com/socket.io/上的那個文章並沒有真正幫助。

所以,假設我有一個socket.io http服務器並編寫了一個網站來連接它。

  1. 如何為服務器提供保護,以便阻止/刪除/禁止未經授權的人(不通過網站連接的人)。

  2. 如何在服務器端結束套接字連接? 所以,如果我有

     io.sockets.on('connection', function (socket) { socket.on('end', function() { var i = global_sockets_list.indexOf(socket); global_sockets_list.splice(i, 1); }); socket.emit('end'); // Doesn't work, just sends data socket.end(); //error }); 

如何結束套接字連接? (上面的連接然后斷開連接用於測試)

試着打電話:

socket.disconnect('unauthorized');

要么

socket.close();

編輯:您可能能夠檢查referer標頭。 查看Socket.io安全問題以獲取更多信息。

在服務器端有一個socket.disconnect方法,它采用布爾意義關閉底層傳輸連接。 以下是截至2010年7月的docs源代碼:

/**
 * Disconnects this client.
 *
 * @param {Boolean} if `true`, closes the underlying connection
 * @return {Socket} self
 * @api public
 */

Socket.prototype.disconnect = function(close){
  if (!this.connected) return this;
  if (close) {
    this.client.disconnect();
  } else {
    this.packet({ type: parser.DISCONNECT });
    this.onclose('server namespace disconnect');
  }
  return this;
};

所以你應該調用socket.disconnect(true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM