i have a small issue on flutter application with node.js socket connection

19 Views Asked by At

i have these issues i can a emit a event and the user will listen but I can't make a emit after on specific room i of course I put socket.on on the client side but i can't have any response on the room My programme in simple is a chat room on flutter i have many task and every task i have i want to make for it a chat room so it doesn't work its only work if i have make a normal emit which will listen a message on client side but not opeset

This is my node.js code

 Socket.on('joinRoom', (roomName) => {
    console.log(roomName);
    Socket.join(roomName);
    Socket.emit('roomJoin', roomName);


  });
  Socket.on('privateMesage', (message, roomName) => {
    console.log(message['message']);
    console.log(message['roomName']);

    emit('privateMessageSend', message);

    Socket.in(message['roomName']).emit('privateMessageSend', message);
    console.log(message['message']);
    console.log(message['roomName']);
  })


  Socket.on('sendMsg', (message, roomName) => {
    console.log('dwadw' + message);
    console.log(message['message']);
    Socket.in(roomName);
    io.in(roomName).emit("Enter Web", message)
    storedMessages.push(message);
    io.emit('storedMessages', storedMessages);
    console.log('message sent');
    Socket.emit('newMsg', message)
    console.log(storedMessages);
  });
dynamic messages=[];
  connectToServer() async {
    socket = IO.io(
        'http://10.0.2.2:5000',
        IO.OptionBuilder()
            .setTransports(['websocket'])
            .disableAutoConnect()
            .setExtraHeaders({'foo': 'bar'})
            .disableAutoConnect()
            .build());
    socket.on('connection', (data) => {print(data)});
    socket.connect();
    socket.on('Enter Web', (data) => {print(data), messages = data, update()});
    update();
    socket.on(
        'storedMessages', (data) => {print(data), messages = data, update()});
  }
void joinRoom({required String rommeName}) {
    print('fawwf');
    print(rommeName);
    socket.emit('joinRoom', {'roomName': rommeName});
    socket.on('Enter Web', (data) => {print(data)});
    socket.on(
        'privateMessage', (data) => {messages = data, print(data), update()});
    print('awddwaawddwaa $messages');
  }

  void sendPrivateMessage({required String message}) {
    var roomName = data['taskName'];
    socket.emit('privateMesage', [message, roomName]);
    socket.on(
        'privateMessage', (data) => {messages = data, print(data), update()});
  }

  void sendMessage({required String message}) {
    var roomName = data['taskName'];
    socket.emit('sendMsg', {'message': message, 'roomName': roomName});
  }
0

There are 0 best solutions below