2016-01-27 76 views
0

我有以下的js代碼socket.emit不傳遞消息

`var express = require('express'); 
var app = express(); 
var http = require('http').Server(app); 
var path = require("path"); 
var io = require('socket.io')(http); 


app.get('*', function (req, res){ 
    res.sendFile(path.join(__dirname, '/Public')); 
}); 

app.use('/home',express.static(path.join(__dirname,'/Public'))); 

//app.use('/static', express.static(__dirname + 'index.html')); 

io.on('connection', function (socket) { 
    socket.on('message', function (data) { 
    socket.emit('news', { hello: 'world' }); 
    }); 
    socket.on('another-message', function (data) { 
    socket.emit('not-news', { hello: 'world' }); 
    }); 
}); 


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

我有HTML代碼

<html> 
    <h1>working</h1> 
    <script src="/socket.io/socket.io.js"></script> 
    <script> 
     var socket = io.connect('http://localhost:3000', { path :'/' +home}); 
     socket.on('connect',function(){ 
     socket.emit('message', 'Hello server'); 
     }); 
     socket.on('news', function (data) { 
     console.log(data); 
     socket.emit('my other event', { my: 'data' }); 
     }); 
    </script> 
    <body> 
     <p>display a message</p> 
     </body> 
    </html>` 

我去的網頁本地主機:3000 /家,我讓我的HTML頁面。但在控制檯中我看不到任何消息。我在哪裏錯了?請糾正我。

+0

請嘗試這種在HTML插座.emit('message',{'msg':'Hello server'});而不是socket.emit('message','Hello server'); –

+0

你會得到什麼錯誤? –

+0

@abhyudit我dint得到任何錯誤,但瀏覽節點之間沒有消息傳遞。因此,控制檯和瀏覽器都是空的 –

回答

0

你爲什麼說在控制檯中沒有任何錯誤?我有一個錯誤。我會貼的這個截圖:

Error

點擊,要看到你有錯誤。

我會爲你節省時間。

改變這一行index.html中

var socket = io.connect('http://localhost:3000', { path :'/' +home}); 

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

後,你會得到這樣的事情:

Success

+0

感謝這項工程.. –

+0

@SureshKrishna如果它幫助你,請接受這個答案。 –

+0

我想要特定路徑localhost:3000/home的連接,所以我做了var ioPath =「」; iopath ='/'+'home'+'/socket.io' var socket = io.connect('http:// localhost:3000',{path:iopath});但在瀏覽器中,我得到「GET http:// localhost:3000/home/socket.io /?EIO = 3&transport = polling&t = LA2EDPs 404(Not Found)」 –