1

コード

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');
    // });  

});

私はこのエラーが発生しています

.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)
4

1 に答える 1

0

古いバージョンの Express を使用している可能性があります。createServer廃止されました。また、express >=3.x は http サーバーを返しません。そのため、http サーバーが接続されていない可能性があり、そのエラーがスローされます。

Express 自体を http サーバーに接続する必要があります。そのため、ライブラリとコードを最新の標準に更新してください。これを見る

于 2014-05-06T10:49:24.517 に答える