Node.js (';消息';)上的socket.io-client不工作

Node.js (';消息';)上的socket.io-client不工作,node.js,react-native,socket.io,Node.js,React Native,Socket.io,我正在react本机聊天应用程序中使用socket.io-client。套接字连接良好,并响应on('connection'),但不响应消息。配置socket.io-client以处理自定义事件的正确方法是什么?我找到的所有文档看起来都像我的实现。我的信息模块: import io from 'socket.io-client'; Messenger = (props) => { const [data, setData] = useState([]); const [test,

我正在react本机聊天应用程序中使用socket.io-client。套接字连接良好,并响应on('connection'),但不响应消息。配置socket.io-client以处理自定义事件的正确方法是什么?我找到的所有文档看起来都像我的实现。我的信息模块:

import io from 'socket.io-client';
Messenger = (props) => {
  const [data, setData] = useState([]);
  const [test, setTest] = useState('');

  const socket = io('https://test.com', {
    autoConnect: false,
  });

  const getCredentials = async () => {
    await socket.connect();
    await fetchMessages();
  }

  useEffect(() => {
    socket.connect();

    socket.on('connect', function() {
      setTest('connected!');
    });

    socket.on('message', function(message) {
      setTest('message!');
    });

    socket.on('typing', function(typing) {
      setTest('typing');
    });
    getCredentials();
  }, []);

  return (...);
}
我的服务器:

var socket_io = require( 'socket.io' );
const io = socket_io();
io.use((socket, next) => {
  sessionMiddleware(socket.request, {}, next);
});
io.on( "connection", function( socket )
{
  if (socket.request.session.auth_user) {
    redisClient.set(socket.request.session.auth_user._id.toString(), socket.id);

    socket.on( "disconnect", function() {
      console.log( "A user disconnected" );
      redisClient.del(socket.request.session.auth_user._id);
    });
  }
});

很难说没有看到您的服务器,但如果将您的案例与我的案例进行比较,应该是这样的:

useEffect(() => {
    const socket = io('https://test.com', {
        autoConnect: false,
    });

    socket.on('connect', function () {
        setTest('connected!');

        socket.on('message', function (message) {
            setTest('message!');
        });

        socket.on('typing', function (typing) {
            setTest('typing');
        });
    });

},[])

我添加了服务器代码。我在react native中使用的代码与我在正常工作的桌面客户端中使用的代码相同。您的服务器中不应该有
socket.emit('message',…)
,以便在客户端应用程序上捕获消息吗?我使用socket.emt('message',…)在代码后面的一个消息传递函数中。我刚刚意识到我的服务器无法识别来自react native的连接。您解决了这个问题吗?您是否在localhost中运行服务器?