首页 > 解决方案 > 无法在本机反应中连接到 socket.io

问题描述

我正在尝试在 nodejs 和 react-native 之间建立 socket.io 连接。但不幸的是,它不起作用。

问题是客户端没有通过套接字与服务器连接。

这是nodejs(服务器端)代码

const express = require("express");
const http = require("http");
const app = express();
const server = http.createServer(app);
const socket = require("socket.io");
const io = socket(server);

server.listen(process.env.PORT || 8000, () => console.log('server is running on port 8000'));

    app.use(express.static('client/build'));
    const path = require('path');
    app.get('*', (req, res) => {
      res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
    });

io.on('connection', socket => {
    console.log('connection')})


这是本机(客户端)代码(修剪)

import React from 'react'
import { Button } from 'react-native'
import io from 'socket.io-client';

const Room = props => {
  const sock = useRef();

useEffect(() => {
      sock.current = io.connect(<HOSTNAME>, {
        forceNode: true,
        transports: ['websocket'],
      });
      //to check if mobile connected to server
      console.log('test');
      console.log('check 11', sock.current.connected);
      sock.current.on('connect', function() {
        console.log('check 2', sock.current.connected);
      });
  });


}

当我尝试连接时,我的控制台中没有收到“检查 2”消息,该消息将在执行 sock.current.on('connect'....

使用的库:react-native 版本:0.62.1,socket.io-client 版本:2.3.0(客户端),socket.io 版本:2.3.0(服务器端)

标签: node.jsreact-nativeexpresssocket.io

解决方案


推荐阅读