저는 nodejs 및 socket io에 익숙하지 만 실제로 어떻게 작동하는지 이해하려고합니다. 이미 소켓 io 웹 사이트에서 "chat tutorial"을 완료했습니다. 그러나, 나는 "새로운"무언가를 여기에서하는 것을 시도하고있다. 새 연결이 설정 될 때마다 임의의 번호가있는 새 탭을 추가하여 모든 클라이언트에 이벤트를 브로드 캐스트하려고합니다. 그러나 일어나는 유일한 일은 한 번 (내 자신의 연결에서)하지만 다른 사람들에게는 아무 것도 추가하지 않는다는 것입니다. 이것이 가능하지 않습니까, 아니면 제가 잘못하고있는 것입니까?nodejs 및 socket io 동기화 문제
서버,
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.use("/assets/stylesheets", express.static(__dirname + '/assets/stylesheets'));
app.use("/assets/javascripts", express.static(__dirname + '/assets/javascripts'));
app.use("/assets/demo/avatars", express.static(__dirname + '/assets/demo/avatars'));
app.use("/assets/fonts/font-awesome/", express.static(__dirname + '/assets/fonts/font-awesome/'));
app.get('/dashboard', function(req, res){
res.sendFile(__dirname + '/dashboard.html');
});
io.on('connection', function(socket) {
socket.on('new user', function(username) {
socket.emit('new connection', { nickname: username });
console.log('new connection ' + username);
});
});
http.listen(3000,function() {
console.log('Listening *:3000');
});
클라이언트,
<script type="text/javascript">
var randomNumber = Math.floor((Math.random() * 10) + 1);
var socket = io();
socket.on('connect', function() {
socket.emit('new user', randomNumber);
});
socket.on('new connection', function(data) {
var nickname = data.nickname;
$('<li class="active"> <a href="#' + nickname + '" data-toggle="tab">' + nickname + '<span class="label label-success">12</span></a> </li>').appendTo("#uidemo-tabs-default-demo");
});
</script>
아, 알겠습니다! 고마워, 그 위대한 일했습니다! –