Reputation: 15
I was adding a chat page in my existing express app using socket.io. My server code :
var io = socket(server);
io.on('connection', (socket) => {
console.log('made socket connection', socket.id);
// Handle chat event
socket.on('chat', function(data){
console.log("second");
io.sockets.emit('chat', data);
});
});
and my client code :
var socket = io.connect("http://localhost:3000/chat")
//Query elements
var message = document.getElementById('message'),
btn = document.getElementById('send'),
output = document.getElementById('output');
btn.addEventListener("click", function(){
socket.emit('chat', {
message: message.value,
});
console.log("First")
message.value = "";
})
socket.on('chat', function(data){
console.log("final function")
output.innerHTML += `<p>${data.message}</p>`;
});
socket.emit is fired on click in client side but socket.on in server doesn,t run. Note : console.log('made socket connection', socket.id); run normally
Upvotes: 0
Views: 546
Reputation: 2014
there is an issue in your client side . you are trying to connecting with namsespaces "chat" , remove chat
var socket = io.connect("http://localhost:3000")
Upvotes: -1