2017-05-30 45 views
0

我試圖將即時消息添加到現有的應用程序。但我不知道應該如何配置socket.io模塊。 我已經試過如下:我在socket.io配置中做了什麼錯誤?

process.env.NODE_ENV = process.env.NODE_ENV || 'development'; 
const config = require('./config/config.js'); 

var expressConfig = require('./config/express.js').front, 
    models = require('./app/models'), 
    passConfig = require('./config/passport-front.js'); 

const app = expressConfig(); 
const passport = passConfig(); 

app.set('port', config.frontPort); 
const http = require('http').Server(app); 
const io = require('socket.io')(http); 

io.on('connection', function (socket) { 
    console.log('Connected'); 
}); 

models.sequelize.sync().then(function() { 
    var server = http.listen(app.get('port'), function() { 
    console.log('Express server listening on port ' + server.address().port); 
    }); 

}); 

module.exports = http; 

由於連接當我打開一個網頁,我假設缺少的東西沒有被記錄下來。我的錯誤在哪裏?

回答

0

你沒有顯示你的客戶端代碼,所以很難告訴你什麼是錯的。瀏覽器中是否有錯誤?瀏覽器上的網絡流量是多少?沒有這個,很難說具體的東西。

看看這個答案:

它有類似於你正在試圖做的事如何工作的例子。

一般 - 記住,你需要在瀏覽器中socket.io客戶端代碼:

<script src="/socket.io/socket.io.js"></script> 

,然後你需要用io()的東西,如連接:

var s = io(); 
s.on('color', function (color) { 
    document.body.style.backgroundColor = color; 
}); 

這裏的'顏色'只是來自GitHub上這個項目的一個例子:

這是一個網站的例子,它改變了在來自socket.io的消息中選擇的顏色。

+0

謝謝。看起來我在等魔術,因爲我從來沒有在客戶端編寫任何代碼。我錯過了簡單的'io.connect()'。 – belyid