node.js - socket.io client not receiving message -


when no room specified client receive message when specify room unable receive message on client.

server.js

var socket = require('socket.io'); var mysql = require('mysql'); const path = require('path'); var express = require('express'); var app = express(); var server = require('http').createserver(app); var io = socket.listen(server); var port = port; io.on('connection', (socket) => {    console.log('new connection made');    socket.on('subscribe', function (room) {     socket.room = room;     socket.join(socket.room, function () {       console.log('joined:' + room); // outputs joined: 1       socket.on('send-message', (data) => {             io.to(data.room).emit('message-received', data.message);             console.log("sent room:" + data.room);  // outputs sent room: 1        });     });   }); });  server.listen(port, function () {   console.log('server listening @ port %d', port); }); 

client.js

this.socket = io.connect('ws://ip:port');  this.socket.on('connect', () => {   console.log("connection made"); // output connection made in console   this.socket.emit('subscribe', 1); }); this.socket.on('message-received', (message: any) => {    console.log(message); }); 

on server.js have tried several options below still unable emit 'message-received' on client side:

// io.emit('message-received', data); // io.to(data.room).emit('message-received', {   //   room: data.room,   //   message: data.message // }); // io.sockets.in(data.room).emit('message-received', { //   room: data.room, //   message: data.message // }); //io.broadcast.to(data.room).emit('message-received', data.message); 

using latest socket.io library angular 4

based on see on clientside , serverside code, believe problem in clientside code...

on server, inside 'subscribe' event server listening 'send-message' event, you're never emiting client side!!

therefore, if emit 'send-message' event data(this should include message) parameter, server emit 'message-received' event client..

hope helps!


Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -