31

ExpressJS の 3 番目のバージョンでは、express.createServer()がexpress( )に変更され、この変更により、同じポートで socket.io をバインドすることが困難になります。たぶん、誰かが確固たる決定を見つけることができます。

さて、これはうまくいきません:

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

私の現在のワークフロー: https://gist.github.com/3596852

4

2 に答える 2

54

socket.io github ページで説明されています ( @Goloがコメントで述べているように):

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

server.listen(80);

これは機能します。実行しています。

おそらく、Golo が忘れていたのは、listen を から に変更したことapp.listen(80)ですserver.listen(80)。愚かな間違いに気付くまで、私もこれに苦労しました。

于 2012-09-02T15:36:30.047 に答える
2
var app = require('express')()
  , server = require('http').createServer(app)
  , io = require('socket.io').listen(server)

app.start = app.listen = function(){
  return server.listen.apply(server, arguments)
}

app.start(8080)
于 2012-09-02T14:41:18.327 に答える