![](/img/trans.png)
[英]Function return the result getting from an socket.on (socket.io)
[英]socket.io TypeError: socket.on is not a function
我正在开发一个节点应用程序使用快递,它有一个聊天系统,我使用socket.io但我得到这个错误
Server is listening on 3000
made socket connection
C:\Users\User\MyFolder\Projects\FMIS\app\app.js:139
socket.on('chat', function(data){
^
TypeError: socket.on is not a function
at Namespace.<anonymous>
(C:\Users\User\MyFolder\Projects\FMIS\app\app.js:139:12)
at emitOne (events.js:116:13)
at Namespace.emit (events.js:211:7)
at Namespace.emit
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickCallback (internal/process/next_tick.js:180:9)
这就是我在`app.js中尝试过的
var reload = require('reload');
var bodyParser = require('body-parser');
var app = express();
var socket = require('socket.io');
app.set('port', process.env.PORT || 3000);
app.set('view engine', 'ejs');
app.set('views','app/views');
app.locals.siteTitle = "FMIS";
app.use(express.static('app/public'));
app.use(require('./routes/Chat_api'));
app.use(require('./routes/Chat'));
var server = app.listen(app.get('port'),()=>{
console.log('Server is listening on '+ app.get('port'));
});
var io = socket(server);
io.on('connection',function(){
console.log('made socket connection');
socket.on('chat', function(data){
// io.sockets.emit('chat',data);
console.log(data);
});
});
reload(server, app);
我发送并从客户端收到这样的数据
socket.emit('chat',{
user: chatUsername.value,
Message: chatMessage.value
});
socket.on('chat',function(data){
// showMessage(data);
console.log(data);
});
您正在使用socket.io库参考,不包含功能属性on
。 你想要做的是使用提供给你的套接字作为io.on
连接事件回调的参数。 要解决此问题,您只需将socket
添加到回调函数的参数即可。 像这样:
io.on('connection',function(socket) {
console.log('made socket connection');
socket.on('chat', function(data){
// io.sockets.emit('chat',data);
console.log(data);
});
});
现在socket
指的是连接提供给你的套接字。 有关详细信息,请参阅此示例 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.