ничего не происходит, когда я передаю некоторое значение серверу сокетов

#node.js #reactjs #react-native #websocket #socket.io

#node.js #reactjs #реагировать-родной #веб- сокет #socket.io

Вопрос:

У меня есть серверный код expressjs, который прослушивает порт сокета, подобный тому, что вы видите ниже.

 websocket.on('connection', (socket) => {
  console.log('A client just joined on', socket.id);
  websocket.on('messageIM', (message) => {
     console.log('msg:' message)

});
});
 

мое клиентское приложение — это мобильный проект, основанный на react, который содержит такой код:

   constructor(props) {
super(props); 
this.socket = SocketIOClient('http://192.168.140.51:3000/');

  }
 

и я получаю сообщение client connect «Клиент только что присоединился к ***» войти в консоль сервера, означает, что подключение к серверу выполнено успешно. но когда я выдаю какую-то переменную …. на стороне сервера ничего не произойдет !…

 call()=>{
 this.socket.emit('messageIM','Hi server')
}
 

означает, что когда я вызываю вышеуказанную call() функцию, на сервере ничего не происходит.

это коды, которые я написал как на стороне клиента, так и на стороне сервера, пожалуйста, помогите, если у вас есть некоторый опыт в этом.

Ответ №1:

Похоже, вы использовали неправильную переменную для прослушивания. Событие подключения возвращает сокет, который вы хотите использовать. Переименовать websocket.on('messageIM' в socket.on('messageIM'

 websocket.on('connection', socket => {
  console.log('A client just joined on', socket.id);
  socket.on('messageIM', message => {
     console.log(`msg: ${message}`)
  });
});