2017-01-26 150 views
0

林tryng創建使用Node.js和受socket.io, 的問題是,當我發出消息的鍵之間的私人聊天,不顯示在該消息房間,我不知道是什麼問題...私人使用Node.js的聊天和socket.io

服務器

var app = require('express')(); 
    var express = require('express'); 
    var http = require('http').Server(app); 
    var io = require('socket.io')(http); 
    app.use(express.static('./public')); 


    app.get('/', function(req, res){ 
     res.sendFile(__dirname + '/index.html'); 
    }); 


    io.sockets.on('connection', function(socket){ 
     console.log("step 0 OK");     // Works 
    socket.on('room', function (room) { 
     console.log("step 1 OK");     // Works 
      socket.join(room); 
     }); 
    }); 

    room = "1234"; 
//THIS CODE NOT WORKING 
    io.sockets.in(room).emit('message', 'what is going on, party people?'); 


    http.listen(3000, function(){ 
     console.log('listening on *:3000'); 
    }); 

CLIENT

$(document).ready(function() { 

     var socket = io('http://localhost:3000'); 

     $("#triggerBtn").on("click", function(e) { 
      e.preventDefault(); 

      socket.emit('room', '1234'); 
      return false; 
     }); 


     socket.on('message', function(data) { 
      console.log("Step 2 OK");    //THIS CODE IS NOT EXECUTED 
     }); 




    }); 

HTML

<html> 

<head> 

    <title>Bootstrap Case</title> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
    <script src="https://cdn.socket.io/socket.io-1.2.0.js"></script> 
    <script src="http://code.jquery.com/jquery-1.11.1.js"></script> 

</head> 

<body> 

    <div class="container-fluid"> 
     <li><a href="#"><button type="button" class="btn btn-default" id="triggerBtn">Enviar</button></a></li> 
    </div> 

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
    <script src="./bootstrapPage.js"></script> 

</body> 

</html> 

回答

3

套接字不能發射沒有連接。移動:

io.sockets.in(room).emit('message', 'what is going on, party people?'); 

內:

io.sockets.on('connection', function(socket){ ... 
+1

完美的作品!你是男人,我接受你的答案。 –

相關問題