为什么我无法从React / ReactNative Client应用程序收听socket.io事件?

时间:2018-12-19 05:29:34

标签: reactjs react-native socket.io

我是socket.io的新手,我将它与react和react native一起使用。在我的场景中,服务器发出“ incomingBooking”事件。因此,客户需要捕获此事件并在控制台中打印“预订详细信息”。

我尝试如下,但是对我来说不起作用。

export default class App extends Component<Props> {

    componentDidMount () {
        const socket = io.connect("http://localhost:3000/riders");
        const username = "pawan@gmail.com";
        const data = {
            username: username,
            room: username,
            location: {
                latitude: 6.8741,
                longitude: 79.8605,
            }
        }
        socket.emit('joinRoom', {room: username});
        socket.emit('updateLocation', data);

        socket.on('incomingBooking', function (details) {
            console.log('Booking!!!', details);
        });

        console.log("Done")
    }

    render() {
        return (
            <Drawer/>
        );
    }
}

1 个答案:

答案 0 :(得分:0)

您能描述一下如何从服务器发送信息吗?

此示例应该可以正常工作:

//server.js
const io=require('socket.io')();
io.on('connect',(socket)=>{
    console.log('socket connected');
    socket.on('updateLocation',(msg)=>{
        console.log('updateLocation request');
        socket.emit('incomingBooking',{
            test:'data'
        })
    })
})
io.listen(3000)

请注意:在客户端使用socket.on('eventName')时,必须在服务器端使用socket.emit('eventName')socket.send('something')无效。