2

I'm using Socket.IO for websockets and I want clients receive a welcome message in console from server when they connect but it's not working:

Server:

var fs = require('fs');
var https = require('https');
var express = require('express');
var app = express();
var options = {
  key: 
    fs.readFileSync('/myfolder/mykey.pem'),
  cert: 
    fs.readFileSync('/myfolder/mychain.pem')
};

var serverPort = 3080;

var server = https.createServer(options,app);
var io = require('socket.io')(server);

app.get('/',function(req,res){
   res.sendFile(__dirname+'/index.html');
});

server.listen(serverPort, function(){
   console.log('Server is working');
   //console.log(__dirname);
});


io.on('connection', function(socket){

 console.log("Connected!");
 socket.broadcast.emit("Welcome","Good day sunshine!");
});

Client:

<script src="https://localhost:3080/socket.io/socket.io.js"></script>
<script>
var URL_SERVER = 'https://localhost:3080';
var socket = io.connect(URL_SERVER);

socket.on("Welcome", function(data){
   console.log(data);
}); 

</script>

I'm getting message console in server side but not the server answer in the console client.

How can I fix it?

NekoLopez
  • 579
  • 1
  • 9
  • 28
  • Possible duplicate of [socket.io client not receiving messages from server](https://stackoverflow.com/questions/9837998/socket-io-client-not-receiving-messages-from-server) – Randy Casburn May 23 '18 at 15:53

1 Answers1

3

To broadcast, simply add a broadcast flag to emit and send method calls. Broadcasting means sending a message to everyone else except for the socket that starts it.

Reference : https://socket.io/docs/

Fabien Greard
  • 1,854
  • 1
  • 16
  • 26
  • Thanks for your answer, according to your reference I modified on server side the line: `socket.broadcast.emit("Welcome","Good day sunshine!");` changing to `io.emit("Welcome","Good day sunshine!");` and now it works. – NekoLopez May 23 '18 at 16:13