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