Socket没有使用nodejs监听

时间:2017-08-13 20:20:55

标签: javascript angularjs node.js sockets

提前感谢您的帮助。我从我的控制台See Server running console log获得了以下状态。 Snippet下面是我的app.js代码,其中express和node server正在运行。如果您看到我的套接字代码,则套接字连接下的console.log未显示在服务器日志中。 Socket没有收听我的消息。

我还在github上传了我的代码示例,在这里你可以发现(github.com/ferozpuri/node-app)客户端套接字代码在SocketController.js中是一个Angular控制器文件。

这是我的app.js文件代码,正如您可以看到控制台日志"已建立连接"永远不会显示与套接字控制台一样。



var express = require('express');
var http = require('http');
var path = require('path');
var favicon = require('static-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var engines = require('consolidate');
var routes = require('./routes');
var users = require('./routes/user');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);

// view engine setup
//app.set('views', path.join(__dirname, 'views'));
//app.set('view engine', 'jade');

app.engine('html', engines.nunjucks);
app.set('view engine', 'html');
app.set('views', path.join(__dirname, 'views'));

app.use(favicon());
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(app.router);

app.get('/', routes.index);
app.get('/users', users.list);

/// catch 404 and forwarding to error handler
app.use(function (req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});

/// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
    app.use(function (err, req, res, next) {
        res.render('error', {
            message: err.message,
            error: err
        });
    });
}

// production error handler
// no stacktraces leaked to user
app.use(function (err, req, res, next) {
    res.render('error', {
        message: err.message,
        error: {}
    });
});

io.on('connection', function (socket) {
    console.log('A connection was made!');
    socket.on('chat.message', function (message) {
        console.log('New Message : ' + message);
    });
});



module.exports = app;




我没有从节点服务器获得套接字响应。如果我没有正确解释这个或任何事情不在这里,请告诉我。

端口上的服务器列表,您可以在screenshort或我的项目结构中看到这一点

Project structure & app listening port OR NPM START CODE

3 个答案:

答案 0 :(得分:0)

您已设置所有处理程序,但未初始化应用程序。

http.listen(app.get('port'), function() {
    console.log('App is listening on port', app.get('port'));
});

答案 1 :(得分:0)

您没有启动服务器。在您的代码中,您的服务器是使用以下行创建的:

var server = require('http').Server(app);

所以,在那之后的某个时候,你需要添加:

server.listen(80);    // or use whatever port number you want the server on

答案 2 :(得分:0)

我通过在构建my express / after var app = express();

下添加以下代码行解决了这个问题

var server = require('http').Server(app); var io = require('socket.io')(server); server.listen(3000); @jfriend00和@Sablor,谢谢你们两个向我展示正确的方向。我的服务器已在端口" 3000"上运行因此,端口80无法正常工作。因为它与我的XAMPP服务器冲突。谢谢你们参与