我想知道如何防止连接的客户端入侵代码并发送消息。
NodeJS服务器代码:
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);
});
我正在使用 webSocket 让用户了解最新的货币价格。我想阻止用户向其他客户端发送数据。
客户端
到客户端交互中涉及的步骤。为简单起见,我使用自定义套接字事件名称作为"聊天"
- 客户端发出事件"聊天"
- 服务器侦听"聊天"事件并获取消息
- 然后服务器发出"聊天"事件来发送消息
- 相应的客户端侦听"聊天"并接收消息
每条消息都通过您的服务器。因此,您可以限制任何客户端到客户端的交互。
此外,每次新客户端连接时,socket.io(写在问题中)都会向所有连接的客户端发送货币价格。相反,当客户端通过请求连接时GET
发送价格。然后在价格更新时发送更新的价格。
将套接字代码替换为遵循上述模式的新代码