如何在MERN应用中正确设置IO?

发布于 2025-02-04 21:07:40 字数 185 浏览 3 评论 0原文

我是socket.io的新手。我对它的工作原理有基本的了解,但是我正在努力在MERN应用程序中找到适当的设置。如果有任何文章或指导您可以给我,我将对其进行处理。我正在构建社交网络应用程序,我需要有实时通知和消息。因此,我不确定如何在React中设置socket.io客户端。我应该像Express一样在Helper File中实现它,还是还有其他方法?谢谢

I am new to socket.io. I have basic understanding of how it works, but I am struggling to find proper setup for it within MERN app. If there is any article, or guidance that you can give me, I would appretiate it. I am building social network app, and I need to have live notifications and messages. So I am not sure how to setup socket.io client in react. Should I instanciate it in helper file, like mongoose in express, or is there any other way? Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

少年亿悲伤 2025-02-11 21:07:40
           Install socket.io for server app

START socket.io-客户端应用程序应用程序

import import socket.io在服务器页面

const express = require('express');
const http = require('http');
const socketio = require('socket.io');
const cors = require('cors');

const app = express();
const server = http.createServer(app)
const io = socketio(server, { cors: { origin: '*' } }) //for omit cors error

const PORT = 2900;
app.use(express.json());
app.use(cors());


io.on('connect', (socket) => {
    console.log("user connected")

    socket.on('valor', ({ id, name, }, callback) => {
        console.log('data::', id, name)

        socket.emit('receiveGreet', { data: 'This message from server' }, (error) => {
            console.log('error::', error)
        })
        callback()
    })

    socket.on('disconnect', () => {
        console.log('user disconnected')

    })
})


app.get('/', (req, res) => {
    res.json('api running')
})

server.listen(PORT, console.log(`server running in node on port ${PORT}`));

客户端代码可能看起来像这样

import io from 'socket.io-client';

let socket: any;
const serverUrl = 'http://localhost:2900';

const MyComponent = () => {
  useEffect(() => {
    socket = io(serverUrl);

    socket.on('receiveGreet', (data) => {
      console.log('data::', data);
    });
  }, []);

  return () => {
    socket.disconnect();
    socket.off();
  };
};
           Install socket.io for server app

Install socket.io - client for client app

import socket.io in server page

const express = require('express');
const http = require('http');
const socketio = require('socket.io');
const cors = require('cors');

const app = express();
const server = http.createServer(app)
const io = socketio(server, { cors: { origin: '*' } }) //for omit cors error

const PORT = 2900;
app.use(express.json());
app.use(cors());


io.on('connect', (socket) => {
    console.log("user connected")

    socket.on('valor', ({ id, name, }, callback) => {
        console.log('data::', id, name)

        socket.emit('receiveGreet', { data: 'This message from server' }, (error) => {
            console.log('error::', error)
        })
        callback()
    })

    socket.on('disconnect', () => {
        console.log('user disconnected')

    })
})


app.get('/', (req, res) => {
    res.json('api running')
})

server.listen(PORT, console.log(`server running in node on port ${PORT}`));

Client side Code May look like this

import io from 'socket.io-client';

let socket: any;
const serverUrl = 'http://localhost:2900';

const MyComponent = () => {
  useEffect(() => {
    socket = io(serverUrl);

    socket.on('receiveGreet', (data) => {
      console.log('data::', data);
    });
  }, []);

  return () => {
    socket.disconnect();
    socket.off();
  };
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文