2017-10-27 19 views
0

接続されたクライアントがコードをハックしてメッセージを送信するのを防ぐ方法を知りたいと思います。私は最新の通貨の価格をユーザーに保つためのWebSocketを使用していクライアントがメッセージを送信しないようにしてくださいsocket.io

var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http ,{serveClient: false}); 
var port = process.env.PORT || 3000; 
var request = require("request") 
var url = "http://localhost/api/index.php"; 
events = require('events'), 
    serverEmitter = new events.EventEmitter(); 
app.get('/', function(req, res){ 
    res.sendFile(__dirname + '/index.html'); 
}); 


io.on('connection', function(socket){ 


    request({ 
     url: url, 
     json: true 
    }, function (error, response, body) { 

     if (!error && response.statusCode === 200) { 
      io.emit('chat message', body); 
     } 
    }); 


}); 


http.listen(port, function(){ 
    console.log('listening on *:' + port); 
}); 

は、サーバーのコードをnodejs。 ユーザーが他のクライアントにデータを送信しないようにしたいと考えています。

答えて

0

クライアントからクライアントへの操作に関連する手順。 簡単にするために、私は「チャット」

  1. としてカスタムソケットイベント名を使用しているクライアントは、イベントを発する
  2. を[チャット]サーバーは、「チャット」イベントをリッスンし、メッセージ
  3. サーバーを取得しますその後、[チャット]をリッスンメッセージ
  4. に適切なクライアント(複数可)を送信するために「チャット」イベントを放出し

すべてのメッセージがあなたを通過するメッセージを受信server.Soあなたは、クライアントに任意のクライアントを制限することができますインタラクション。


また、socket.io(質問で書かれている)は、新しいクライアントが接続するたびに、接続されたすべてのクライアントに通貨価格を送信します。代わりに、クライアントがGETリクエストを介して接続するときに価格を送信します。その後、価格が更新されるたびに更新された価格を送信します。

+0

あなたのコードは私はそれがないように正確である上記のパターンを次の新しいコードを使用してソケットのコードを置き換えますか? – Adam

+0

そのコードを新しいコードに置き換えてください。価格が更新されると、接続されているすべてのクライアントにソケットを使用してその価格を発行し、Webページを更新してください –

+0

これはすばらしいことです。 – Adam

関連する問題