A intenção com o programa é que quando dois clientes se conectarem exibir na janela de um cliente o id do outro. O programa salva os dois ids nas variaveis mas envia apenas para o primeiro usuario que se conectou. O segundo usuario conectado não recebe nada. Fiz uma adaptação no código que encontrei no próprio site do socket.io. Estou tentando fazer com que dois clientes interajam entre si.
arquivo do servidor:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var userOne = 0;
var userTwo = 0;
app.get('/', function(req, res){
res.sendFile(__dirname + '/public/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
if (userOne == 0){
userOne = socket.id;
console.log('id1:' + userOne);
}else{
userTwo = socket.id;
console.log('id2:' + userTwo);
socket.to(userOne).emit('saveId', userTwo);
socket.to(userTwo).emit('saveId', userOne);
}
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});
socket.on('disconnect', function(){
console.log('user disconnected');
});
socket.send(socket.id);
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
arquivo cliente:
<!doctype html>
<html>
<head>
<title>Socket.IO chat</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font: 13px Helvetica, Arial; }
form { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; }
form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; }
form button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; }
#messages { list-style-type: none; margin: 0; padding: 0; }
#messages li { padding: 5px 10px; }
#messages li:nth-child(odd) { background: #eee; }
</style>
</head>
<body>
<ul id="messages"></ul>
<form action="">
<input id="m" autocomplete="off" /><button>Send</button>
</form>
<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
var idConect = 0;
$('#messages').append($('<li>').text('Conectado ao id:' + idConect));
$(function () {
var socket = io();
$('form').submit(function(){
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
socket.on('chat message', function(msg){
$('#messages').append($('<li>').text(msg));
});
--
Você recebeu essa mensagem porque está inscrito no grupo "Node.js Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nodebr+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.