2015-07-05 1 views
0

Сервер работает нормально, и он наносит ответный вызов MongodDB просто отлично, но он не бьет io.on('connection') callback. Ошибок не появляется, поэтому я не уверен, в чем проблема.Клиенты не нажимают io.on («соединение») при подключении к веб-сайту

var express = require('express'); 
var consolidate = require('consolidate'); 

var app = express(); 
var server = require('http').createServer(app); 

//Create the AlchemyAPI object 
var AlchemyAPI = require('./alchemyapi'); 
var alchemyapi = new AlchemyAPI(); 

// all environments 
app.use(express.static(__dirname + '/public')); 
app.set('port', process.env.PORT || 3000); 
app.use(express.favicon()); 
app.use(express.logger('dev')); 
var MongoClient = require('mongodb').MongoClient; // MONGO DB 
var Server = require('mongodb').MongoClient; 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 
// development only 
if ('development' == app.get('env')) { 
    app.use(express.errorHandler()); 
} 




var port = process.env.PORT || 3000; 
server.listen(port, function(){ 
    console.log('Express server listening on port ' + port); 
}); 

MongoClient.connect('mongodb://[email protected]:12345/db', function(err, doc){ 
    console.log("Got to callback"); 
    io.on('connection', function(socket){ 
console.log('Got here'); 
    }); 
}); 

Вот мой код на стороне клиента (index.html):

<!doctype html> 
<html> 
    <head> 
    <title>Website title</title> 
    <script type="text/javascript" src="https://code.jquery.com/jquery-1.8.0.min.js"></script> 
    <script src="https://apis.google.com/js/client.js?onload=onJSClientLoad"></script> 
    <script src='http://' + location.hostname + ':3000/socket.io/socket.io.js'></script> 
    <script src="https://cdn.socket.io/socket.io-1.2.0.js"></script> 
    </head> 
    <body> 
... 
    </body> 
</html> 
+0

обратитесь к socket.io doc. вам не нужна эта ссылка cdn и соединение с клиентом. – hassansin

ответ

1

Вы слушаете на server объект не http. Поэтому попробуйте передать его в socket.io вместо:

var io = require('socket.io')(server); 
+0

Хмм, все равно не бьется. –

+0

покажите нам свой код на стороне клиента. – hassansin

+0

Несомненно, просто добавлен код на стороне клиента. –