The problem is that you dont store your connections and when you broadcast with socket.emit it goes only to your last connection, you need to store each connection (in a array or something) that has connected to the socket and then iterate over all your connections and broadcast the message you want.
var http=require('http');
var io=require('socket.io');
var fs=require('fs');
var sockFile=fs.readFileSync('text');
server=http.createServer();
//2. get request, via port, http://localhost:8000
server.on('request', function(req, res){
console.log('request received');
res.writeHead(200, {'content-type':'text/html'});
res.end(sockFile);
});
//have server and socket listen to port 8000.
server.listen(8000);
var socket=io.listen(server);
//the lower the number the less chatty the debug becomes.
socket.set('log level', 1);
//initiate the counter.
counter=0;
counterp=0;
connections = {};
function broadcastToConnections(){
for(c in connections){
var con = connections[c];
con.emit('c_display_counter', counter);
}
}
function connectionClose(socket){
delete connections[socket.id];
}
//3. on client connect.
//http://<address>/apps/press_k
socket.on('connection', function(socket){
console.log("Client connected.");
//increment counter on clients command.
socket.on('s_increment_counter',function(data){
counter++;
console.log('New counter:'+counter);
broadcastToConnections();
});
connections[socket.id] = socket;//here we store our connection in connections obj
socket.on('close', connectionClose);//we listen to close event to remove our connection from connection obj
});