【问题标题】:Socket.io client doesn't receive message from ServerSocket.io 客户端没有收到来自服务器的消息
【发布时间】:2018-11-02 16:37:17
【问题描述】:

我正在为 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>

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

我该如何解决?

【问题讨论】:

标签: javascript sockets websocket socket.io


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回答,根据您的参考我在服务器端修改了这一行:socket.broadcast.emit("Welcome","Good day sunshine!"); 更改为io.emit("Welcome","Good day sunshine!");,现在它可以工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-05
  • 2018-08-12
相关资源
最近更新 更多