gpt4 book ai didi

node.js - 无法通过 socket.io 发出?

转载 作者:太空宇宙 更新时间:2023-11-03 22:56:10 25 4
gpt4 key购买 nike

我最近将socket.io更新到最新版本0.9.8

上次我使用该应用程序时,我做了如下操作:

io.sockets.emit("logged",this);

并且成功了。现在我得到:

TypeError: Cannot call method 'emit' of undefined
at new Agent (/var/www/panel/models/agent.js:29:16)
at module.exports (/var/www/panel/modules/app.js:35:47)
at Query.Client.query (/var/www/panel/node_modules/mysql/lib/client.js:108:11)
at Query.EventEmitter.emit (events.js:85:17)
at Query._handlePacket (/var/www/panel/node_modules/mysql/lib/query.js:51:14)
at Client._handlePacket (/var/www/panel/node_modules/mysql/lib/client.js:319:14)
at Parser.EventEmitter.emit (events.js:88:17)
at Parser.write.emitPacket (/var/www/panel/node_modules/mysql/lib/parser.js:71:14)
at Parser.write (/var/www/panel/node_modules/mysql/lib/parser.js:576:7)
at Socket.EventEmitter.emit (events.js:88:17)

我认为这是因为范围或其他什么原因,所以我这样做了:

// server.js
var express = require('express'),
server = express(),
Routes = require('./routes'),
App = require('./modules/app.js'),
database = require('./libraries/mysql.js'),
io = require('socket.io'),
mysql = require('mysql');


server.listen(8080);
io.listen(server);
io.sockets.emit('Hi there', {});

它就是不起作用,同样的错误,不同的行。

我做错了什么?

最佳答案

您需要保存 socketio.listen 的返回值并与之交互。我建议您按照 socket.io 中的示例进行操作。像这样的事情应该可以解决问题:

var express = require('express'),
server = express(),
socketio = require('socket.io');

server.listen(8080);
var io = socketio.listen(server);
io.sockets.emit('Hi there', {});

或者甚至:

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

server.listen(8080);
io.sockets.emit('Hi there', {});

关于node.js - 无法通过 socket.io 发出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11644544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com