2017-05-30 48 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