首页 > 解决方案 > Socket.io:无法读取未定义的属性“发出”为什么我会收到此错误

问题描述

您好,我正在构建一个协作白板,您可以在其中加入房间。我举了这个例子:https : //gist.github.com/crtr0/2896891 在我的 Reactjs 应用程序中实现它。这是我在构造函数中的 React 组件中的代码,这就是我得到错误的地方:

socket = io.connect();
var room = "abc123";
        this.socket.on('connect', function() {
          
            // Connected, let's sign-up for to receive messages for this room
            this.socket.emit('room', room);
         });
         
        this.socket.on('message', function(data) {
            console.log('Incoming message:', data);
         });

这是我的 server.js 代码

var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket.io')(http);
room = "abc123";
io.on('connection', (socket)=> {
      console.log('User Online');
      socket.on('room', function(room) {
            socket.join(room);
        });
      socket.on('canvas-data', (data)=> {
            socket.broadcast.emit('canvas-data', data);
            
      })
      io.sockets.in(room).emit('message', 'what is going on, party people?');

// this message will NOT go to the client defined above
      io.sockets.in('foobar').emit('message', 'anyone in this room yet?');
})

标签: javascriptnode.jsreactjssocket.io

解决方案


推荐阅读