簡體   English   中英

Express Socket.io示例服務器不起作用

[英]Express Socket.io example server not working

我正在嘗試學習socket.io及其Express的示例無法正常工作。 這是我的代碼:

app.js:
var express = require('express')
  , routes = require('./routes')
  , user = require('./routes/user')
  , server = require('http').createServer(app)
  , path = require('path')
  , io = require('socket.io').listen(app);

var app = express();

app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(require('less-middleware')({ src: __dirname + '/public' }));
app.use(express.static(path.join(__dirname, 'public')));

server.listen(3000);

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.jade');
});

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

和我的index.jade文件:

extends layout

block content
        script(src="/node_modules/socket.io/lib/socket.io.js")
        script(
          var socket = io.connect('http://localhost:3000');
          socket.on('news', function (data) {
            console.log(data);
            socket.emit('my other event', { my: 'data' });
          });
          )

當我進入本地主機時,瀏覽器一直在等待響應。 最終超時。

與該問題相關的其他大多數問題對示例代碼的實現都有些奇怪。 我實際上只是在嘗試實現它們所顯示的那樣。

問題是您在創建io之后正在創建app 所以這條線

  , io = require('socket.io').listen(app);

實際上與

  , io = require('socket.io').listen(undefined);

刪除此行

var app = express();

在第一行和io = require('socket.io') add之間的某個位置, app = express()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM