首页 > 解决方案 > Socket.io 客户端没有收到来自服务器的消息

问题描述

我正在为 websockets 使用 Socket.IO,我希望客户端在连接时从服务器的控制台中收到欢迎消息,但它不起作用:

服务器

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

客户:

<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>

我在服务器端得到消息控制台,但在控制台客户端中没有服务器应答。

我该如何解决?

标签: javascriptsocketswebsocketsocket.io

解决方案


要广播,只需添加一个广播标志来发出和发送方法调用。广播意味着向除了启动它的套接字之外的其他所有人发送消息。

参考:https ://socket.io/docs/


推荐阅读