node.js에 서버용 코드를 작성하려고하는데 브라우저에서 실행중인 클라이언트가 일부 ".on"이벤트가 발생하면 서버에 데이터를 전송합니다. 나오다. 이제 서버 측에서는 클라이언트에서 오는 데이터를 수신하여 해당 데이터를 클라이언트에 다시 보냅니다.socket.io node.js에서 서버와 클라이언트 간의 양방향 통신
socket.io를 사용하고 있습니다.
및 서버 측
<p id="ValSlider1"> Curr Val </p>
<input class = "mySlider1" type="range" name="slider" id="slider-0" value="0" min="0" max="100" />
<script>
var socket = io.connect('http://localhost');
$(".mySlider1").change(function() {
var sVal = $(this).val();
socket.emit('ValSlider1', sVal);
console.log('ValSlider1: ' + sVal);
});
socket.on('packet', function (data) {
var valFromServer = data.split('-');
document.getElementById("ValSlider1").innerHTML = valFromServer[0];
document.getElementById("ValSlider2").innerHTML = valFromServer[1];
document.getElementById("ValSlider3").innerHTML = valFromServer[2];
document.getElementById("ValSlider4").innerHTML = valFromServer[3];
$('#container1').html(data);
});
: : 이제
var qs = require('querystring'),
fs = require('fs'),
parser = new require('xml2json'),
urr = require('url'),
app= require('http').createServer(handler).listen(3000),
io = require('socket.io').listen(app);
function handler (req, res) {
var reqObj = urr.parse(req.url, true);
var reqPath = reqObj.pathname;
if ('/' == reqPath) {
res.writeHead(200, {'Content-Type': 'text/html'});
fs.readFile(__dirname + '/client.html', function(err, data) {if (err) {res.writeHead(500);
return res.end('Errorloadingclient.html');
}
res.end(data);
});
}
};
var slider1, slider2, slider3, slider4 ;
io.sockets.on('connection', function(socket) {
socket.on('ValSlider1', function(data){
slider1 = data ;
socket.emit('packet', data);
console.log("Slider 1 Value: " + data);
});
});
setInterval(function() {
var data = slider1 + "-" + slider2 + "-" + slider3 + "-" + slider4;
socket.emit('packet', data);
console.log(data);
},1000);
});
app.maxConnections = 1;
는 통신이 처음 시작 2-3 슬라이더 변화 값이 수신 쓰기는 지금은, 클라이언트 사이드로이 일을하고있다 서버에 의해 인쇄되고 콘솔에 인쇄되었지만 값이 업데이트되지 않으면 서버는 이전 값만 클라이언트에 전송합니다. 또한 socket.emit ('ValSlider1', sVal)을 사용하면; 클라이언트 측에서 두 번 더 잘 작동하지만 왜 두 번씩 emit을 찾을 필요가 없으면 어떤 도움도받을 수 있습니다. 감사합니다. .
이 자습서를 보시려면 http://www.williammora.com/2013/03/nodejs-tutorial-building-chatroom-with.html –
이 내용은 Socket.io – meagar
@meagar의 모든 자습서에서 다룹니다. 그렇다고해서 문제가 덜 유효하지는 않습니다. 답변을 제공하십시오. – Brad