#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}`)
});
});