无法在reactjs中本地连接到套接字IO?

时间:2018-10-19 12:50:11

标签: node.js reactjs socket.io

我将nodeJs用作后端,将reactJs用作前端,这是我从node发出了一个socket发出函数

var server = require('http').createServer();
var io = require('socket.io')(server);
io.emit('quantity_check', 'KR')

现在的问题是我无法捕捉到发射光

let serverUrl = 'localhost:3008'
const socket = socketIOClient(serverUrl);
socket.on("quantity_check", data => this.setState({ kiiii: data }));`  
const socket = socketIOClient(serverUrl);

即使我尝试使用IP进行连接,我也在本地进行检查,我不确定问题出在哪里 pc:nodejs和reactjs运行在不同的端口上

1 个答案:

答案 0 :(得分:0)

您可以将节点服务器文件和react文件的代码发布到您正在侦听套接字的位置吗?无论如何,我希望发射事件在connection

内部
io.on('connection', function(socket) {
  io.emit('quantity_check', 'KR')
}

您是否使用了生命周期方法componentDidMount来接收消息

  componentDidMount() {
    socket.on("quantity_check", data => {
      console.log(data);
    });
  }

尝试这样的事情。

服务器

const server = require('http').createServer();
const io = require('socket.io')(server);
io.on('connect', (socket) => {
  io.emit('quantity_check', 'KR');
});

客户端(反应侧)

import io from 'socket.io-client';
const socket = io('http://localhost:3008');
export class App extends Component {

 componentDidMount() {
   socket.on('connect', () => {
    console.log(socket.connected); 
   });
   socket.on("quantity_checke", data => {
            console.log(data);
     });
 }
   render().......
 }