2012-04-11 84 views
4

我不确定如何在socket.io中理解邮件的用法。我试图从客户端发送消息到服务器,然后服务器回复到客户端(基本不知道?)。如何通过Socket.IO服务器端发送和捕获邮件

这是服务器代码:

var fs = require('fs'); 
var hskey = fs.readFileSync('ssl.key'); 
var hscert = fs.readFileSync('ssl.crt'); 

var options = { 
    key: hskey, 
    cert: hscert 
}; 

var app = require('https').createServer(options); 
var io = require('/usr/local/lib/node_modules/socket.io').listen(app); 

app.listen(8181); 

io.sockets.on('connection', function (socket) { 
    socket.emit('serverMessage', 'Hello world!'); 
    io.sockets.emit('serverMessage', 'A user connected'); 

    io.sockets.on('clientMessage', function (socket) { 
    socket.emit('serverMessage', 'Gotamessage bitch!'); 
    console.log('I received a message by ', from, ' saying ', msg); 
    }); 


    socket.on('disconnect', function() { 
    io.sockets.emit('serverMessage', 'A user disconnected'); 
    }); 
}); 

这是客户端代码:

<script> 

     var socket; 
     var firstconnect = true; 

     function connect() { 
      if(firstconnect) { 
      socket = io.connect('https://secure.connectednodes.com:8181'); 

      socket.on('serverMessage', function(data){ message(data); }); 
      socket.on('connect', function(){ status_update("Connected to Server"); }); 
      socket.on('disconnect', function(){ status_update("Disconnected from Server"); }); 
      socket.on('reconnect', function(){ status_update("Reconnected to Server"); }); 
      socket.on('reconnecting', function(nextRetry){ status_update("Reconnecting in " 
       + nextRetry + " seconds"); }); 
      socket.on('reconnect_failed', function(){ message("Reconnect Failed"); }); 

      firstconnect = false; 
      } 
      else { 
      socket.socket.reconnect(); 
      } 
     } 

     function disconnect() { 
      socket.disconnect(); 
     } 

     function message(data) { 
      document.getElementById('message').innerHTML += "<br>" + "Server says: " + data; 
     } 

     function status_update(txt){ 
      document.getElementById('status').innerHTML = txt; 
     } 

     function esc(msg){ 
      return msg.replace(/</g, '&lt;').replace(/>/g, '&gt;'); 
     } 

     function send() { 
      socket.emit('clientMessage', 'Yo server'); 
     };   

    </script> 

我设法连接和deconnection工作,但我无法得到io.sockets。 on''clientMessage'work。Any idea?

回答

6

我认为你必须使用socket.on而不是io.sockets.on

服务器端

socket.on('clientMessage', function (data, from) { 
    socket.emit('serverMessage', 'Got a message!'); 
    console.log('I received a message by ', from, ' saying ', msg); 
}); 

客户端

function send() { 
    socket.emit('clientMessage', 'Yo server', 'USER001'); 
}; 

尝试

相关问题