【问题标题】:Why I'm unable to listen to a socket.io event from a React/ReactNative Client app?为什么我无法从 React/ReactNative 客户端应用程序监听 socket.io 事件?
【发布时间】:2018-12-19 05:29:33
【问题描述】:

我是 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/>
        );
    }
}

【问题讨论】:

    标签: reactjs react-native socket.io


    【解决方案1】:

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

    这个例子应该可以正常工作:

    //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')不起作用。

    【讨论】:

    • 我已经解决了。预订对象格式存在问题。谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    • 2020-10-26
    • 2010-11-08
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    相关资源
    最近更新 更多