首页 > 解决方案 > 世博会套接字发射不工作,但正在工作

问题描述

任何人都知道为什么发出不工作?如果我单击按钮,它什么也不会发生。

这是我的前端代码:

import io from 'socket.io-client/dist/socket.io';
  const socket = io('http://xxxxx:3000', {
    transports: ['websocket']
  });

  useEffect(() => {

    socket.on('connect', () => {
      setConnected(true);
      console.log('user connected');
    });

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

...

        <TouchableOpacity onPress={() => socket.emit('getmessage', chatMessage)} style={{padding: 4, borderRadius: 4, backgroundColor: 'red'}}>
         <Text>Send</Text>
        </TouchableOpacity>

这是我的后端代码:

const http = require('http');

const express = require('express');

const app = express();

const routes = require('./routes/index');

const cors = require('cors');

const server = http.createServer(app);

const io = require('socket.io')(server);

app.use(cors());

app.use(express.json());

app.use(routes);

io.on('getmessage', message => {
  console.log(message);
});

io.on('connection', socket => {
  console.log('a user connected');
});

server.listen(3000, () => {
  console.log('Server listen');
});

..................................................... ..................................................................

标签: react-nativesocket.ioexpo

解决方案


你能像下面这样改变你的服务器端并试一试吗:)

// ... your code 
io.on('connection', socket => {
  console.log('a user connected');
  socket.on('getmessage', message => {
    console.log(message);
  });
});


推荐阅读