Node.js react js nodejs socket.io

Node.js react js nodejs socket.io,node.js,reactjs,socket.io,Node.js,Reactjs,Socket.io,连接到后端的前端服务器套接字时出现问题 在我的前端(react),我有: import React, { Component } from 'react'; import {Form,FormGroup, Label, Input, Button, Alert} from 'reactstrap'; import Header from '../../components/header'; import io from 'socket.io-client'; export default cla

连接到后端的前端服务器套接字时出现问题 在我的前端(react),我有:

import React, { Component } from 'react';
import {Form,FormGroup, Label, Input, Button, Alert} from 'reactstrap';
import Header from '../../components/header';
import io from 'socket.io-client';
export default class Login extends Component {

    constructor(props) {
        super(props)
        console.log(this.props);
        this.state = {
            message: this.props.location.state?this.props.location.state.message: '',
        };
    }

    signIn = () => {
        let socket = null;

            async function connect () {
               socket = io.connect('http://localhost:8080/');
            }
            connect();

    }

    render(){
        return(
            <div className="col-md-6">
                <Header title="ReactJS Login"/>
                <hr className="my-3"/>

                    <Button color="primary" onClick={this.signIn}> Entrar </Button>

            </div>
        );
    }
}
const socketController = require ('../controllers/SocketController');
module.exports = (socket) => {
    socket.on('myevent', (message) => {
            console.log('bateu aq');
           socket.emit('myEvent', {message: 'hello world'});
    });
 };
在我的路由器文件夹中,我有:

import React, { Component } from 'react';
import {Form,FormGroup, Label, Input, Button, Alert} from 'reactstrap';
import Header from '../../components/header';
import io from 'socket.io-client';
export default class Login extends Component {

    constructor(props) {
        super(props)
        console.log(this.props);
        this.state = {
            message: this.props.location.state?this.props.location.state.message: '',
        };
    }

    signIn = () => {
        let socket = null;

            async function connect () {
               socket = io.connect('http://localhost:8080/');
            }
            connect();

    }

    render(){
        return(
            <div className="col-md-6">
                <Header title="ReactJS Login"/>
                <hr className="my-3"/>

                    <Button color="primary" onClick={this.signIn}> Entrar </Button>

            </div>
        );
    }
}
const socketController = require ('../controllers/SocketController');
module.exports = (socket) => {
    socket.on('myevent', (message) => {
            console.log('bateu aq');
           socket.emit('myEvent', {message: 'hello world'});
    });
 };
我还想知道如何将jwt验证中间件添加到我已有的路由中


我也不知道这是否是使用路由和控制器的套接字的最佳代码结构,如果有人能帮助我改进它的话。

在您的示例中没有实际与服务器交互的代码。请按以下方式更新代码,以确定连接和事件是否按照问题注释工作

反应:

async function connect () {
    socket = io.connect('http://localhost:8080/');

    socket.on('hello', (message) => {
        console.log(message);
    });

    socket.on('myevent', message => {
        console.log(message);
    });

    socket.emit('myevent', {foo: 'bar'});
}
module.exports = (socket) => {
    socket.emit('hello', {data: 'this is a message'});

    socket.on('myevent', (message) => {
       console.log(message);

       socket.emit('myevent', {message: 'OK'});
    });
 };
Express:

async function connect () {
    socket = io.connect('http://localhost:8080/');

    socket.on('hello', (message) => {
        console.log(message);
    });

    socket.on('myevent', message => {
        console.log(message);
    });

    socket.emit('myevent', {foo: 'bar'});
}
module.exports = (socket) => {
    socket.emit('hello', {data: 'this is a message'});

    socket.on('myevent', (message) => {
       console.log(message);

       socket.emit('myevent', {message: 'OK'});
    });
 };

您的示例中没有实际与服务器交互的代码。请按以下方式更新代码,以确定连接和事件是否按照问题注释工作

反应:

async function connect () {
    socket = io.connect('http://localhost:8080/');

    socket.on('hello', (message) => {
        console.log(message);
    });

    socket.on('myevent', message => {
        console.log(message);
    });

    socket.emit('myevent', {foo: 'bar'});
}
module.exports = (socket) => {
    socket.emit('hello', {data: 'this is a message'});

    socket.on('myevent', (message) => {
       console.log(message);

       socket.emit('myevent', {message: 'OK'});
    });
 };
Express:

async function connect () {
    socket = io.connect('http://localhost:8080/');

    socket.on('hello', (message) => {
        console.log(message);
    });

    socket.on('myevent', message => {
        console.log(message);
    });

    socket.emit('myevent', {foo: 'bar'});
}
module.exports = (socket) => {
    socket.emit('hello', {data: 'this is a message'});

    socket.on('myevent', (message) => {
       console.log(message);

       socket.emit('myevent', {message: 'OK'});
    });
 };

实际的问题/错误是什么?当我单击“我的”按钮时,什么都没有发生,也没有连接到我的socketYou def connectin到本地计算机上的正确端口?你能在
io.on('connection',socket=>{
中设置一个断点,看看客户端是否正在连接吗如果我这样做的话:io.on('connection',socket=>{console.log('xd');socket.emit('myEvent',{message:'hello world'});});//我可以连接到我的套接字,但使用该结构我不能,我如何才能添加middlware?服务器在端口8080 Api上以未定义模式运行rodando na porta undefined?实际的问题/错误是什么?当我单击我的按钮时,什么都不会发生,也不会发生连接到我的socketYou def connectin到本地计算机上的正确端口?能否在
io.on('connection',socket=>{
中设置断点,并查看客户端是否正在连接如果我这样做:io.on('connection',socket=>{console.log('xd');socket.emit('myEvent',{message hello world'});});//我可以连接到我的套接字,但使用该结构我不能,我如何才能添加middlware?服务器在端口8080 Api上以未定义模式运行rodando na porta undefinednow好的,谢谢,在转到此后端代码之前如何获取middlware?现在好的nks,在使用此后端代码之前,如何获取middlware?