在Cloud9上发生错误“发送后无法设置标题”

在Cloud9 IDE上同时使用Express和socket.io时出现以下错误:

 http.js:707
    抛出新的错误('发送后不能设置标题')。  ^错误:发送后无法设置标题。
    在ServerResponse.OutgoingMessage.setHeader(http.js:707:11)
    在ServerResponse.res.setHeader(/var/lib/stickshift/523075494382ec51c3000001/app-root/data/610464/node_modules/express/node_modules/connect/lib/patch.js:59:22)
     (/var/lib/stickshift/523075494382ec51c3000001/app-root/data/610464/node_modules/express/node_modules/connect/lib/proto.js:153:13)
    在Function.app.handle(/var/lib/stickshift/523075494382ec51c3000001/app-root/data/610464/node_modules/express/node_modules/connect/lib/proto.js:198:3)
    在Server.app(/var/lib/stickshift/523075494382ec51c3000001/app-root/data/610464/node_modules/express/node_modules/connect/lib/connect.js:65:37)
    在Manager.handleRequest(/var/lib/stickshift/523075494382ec51c3000001/app-root/data/610464/node_modules/socket.io/lib/manager.js:564:28)
    在服务器。  (/var/lib/stickshift/523075494382ec51c3000001/app-root/data/610464/node_modules/socket.io/lib/manager.js:118:10)
    在Server.EventEmitter.emit(events.js:117:20)
    在HTTPParser.parser.onIncoming(http.js:2056:12)
    在HTTPParser.parserOnHeadersComplete [onHeadersComplete](http.js:120:23)

以下是我的server.js代码:

var express = require('express'); var app = express() , http = require('http') , server = http.createServer(app) , io = require('socket.io').listen(server); server.listen(process.env.PORT, process.env.IP); app.get('/', function(req,res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.write('Hello World\n'); }) 

我正在使用节点:“0.10.x”,socket.io:“0.9.14”,并表示:“3.x”。 这个错误只会在Cloud9 IDE上出现。 在本地主机上运行良好。 请帮忙。

我遇到了同样的问题。 虽然这不是一个好的解决scheme,但将Express还原到版本3.1.0为我解决了这个问题。 从最高层看,Express和Socket.io的最新版本并不能很好地结合在一起。

恢复后使用的版本是:

节点: 0.10.x

Socket.io:0.9.16

Express: 3.1.0