node.js - websocket.io 正在引发未定义错误的方法

标签 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);

/**
 * 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)

最佳答案

您可能使用的是旧版本的express。 createServer 已弃用。并且express >=3.x 不会返回http 服务器。因此可能没有附加 http 服务器,这会引发该错误。

express本身需要附加到http服务器。因此,将库和代码更新为最新标准。请参阅this

关于node.js - websocket.io 正在引发未定义错误的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23490215/

相关文章:

node.js - 让 ngPrime 为 Angular 2 工作

node.js - api.ai 使用不同的输入循环相同的意图

session - Playframework 2、Websocket 和 session

c# - 在 C# 中协商 WebSocket(Chrome 连接到 Unity C# TCP 客户端)

websocket - JMeter 中的 Signalr 负载测试

c - 什么是堆栈粉碎,我该如何解决?

node.js - 如何从azure云中的nodejs应用程序发送gmail?

c++ - 读取功能的段错误

c - 堆栈粉碎和 sscanf

node.js - Sails 0.10 & 多对多关联 - 获取所有关联数据,而不仅仅是第一个