Node.js io是在未定义错误的方法上提出的

Node.js io是在未定义错误的方法上提出的,node.js,websocket,stack-smash,Node.js,Websocket,Stack Smash,代码 我得到了这个错误 var express = require('express') , wsio = require('websocket.io'); /** * Create express app. */ var app = express.createServer(); /** * Listen */ app.listen(3000); /** * Attach websocket server. */ var ws = wsio.attach(app)

代码

我得到了这个错误

var express = require('express')
    , wsio = require('websocket.io');

/**
 * Create express app.
 */
var app = express.createServer();

/**
 * Listen
 */
app.listen(3000);


/**
 * Attach websocket server.
 */

var ws = wsio.attach(app);

/**
 * Serve your code
 */
app.use(express.static('public'));

/**
 * Listening on connections
 */
ws.on('connection', function (socket) {
    //listen on the message event and send it back
    // socket.on('message', function (msg) {
    //  console.log('   \033[96mgot:\033[39m    ' + msg);
    //  socket.send('pong');
    // });  

});

您可能正在使用旧版本的express。createServer已弃用。express>=3.x不返回http服务器。因此,可能没有连接http服务器,这会引发错误

express本身需要连接到http服务器。因此,请根据最新标准更新库和代码。看

.io\lib\protocols\hybi-16.js:39
    .on('text', function (packet) {
     ^
TypeError: Object #<Receiver> has no method 'on'
    at new WebSocket (H:\wamp\www\practices\nodejs\smashing\chapter10-websocket\
node_modules\websocket.io\lib\protocols\hybi-16.js:39:6)
    at Server.createClient (H:\wamp\www\practices\nodejs\smashing\chapter10-webs
ocket\node_modules\websocket.io\lib\server.js:88:10)
    at Server.handleUpgrade (H:\wamp\www\practices\nodejs\smashing\chapter10-web
socket\node_modules\websocket.io\lib\server.js:60:21)
    at HTTPServer.<anonymous> (H:\wamp\www\practices\nodejs\smashing\chapter10-w
ebsocket\node_modules\websocket.io\lib\websocket.io.js:92:8)
    at HTTPServer.EventEmitter.emit (events.js:106:17)
    at Socket.socket.ondata (http.js:1986:14)
    at TCP.onread (net.js:525:27)