Node.js socket.io将数据从服务器发送到客户端

Node.js socket.io将数据从服务器发送到客户端,node.js,express,socket.io,Node.js,Express,Socket.io,我试图将一些json对象从服务器端发送到客户端 var express=require('express'); var-app=express(); var server=app.listen(1337); var io=require('socket.io')。侦听(服务器); var json={ var1:1, var2:2, var3:3, }; io.on('connection',函数(json){ io.send('message',json); }); app.listen(30

我试图将一些json对象从服务器端发送到客户端

var express=require('express');
var-app=express();
var server=app.listen(1337);
var io=require('socket.io')。侦听(服务器);
var json={
var1:1,
var2:2,
var3:3,
};
io.on('connection',函数(json){
io.send('message',json);
});
app.listen(3000);
和index.html上的

<!DOCTYPE html>


<html>
<head></head>
<body>

<script src="https://cdn.socket.io/socket.io-1.0.0.js"></script>


<script>
    var socket = io.connect('http://localhost:3000');
  
    socket.on('message', function(data) {
      console.log(data);
    });
</script>


</body>

</html>

var socket=io.connect('http://localhost:3000');
socket.on('message',函数(数据){
控制台日志(数据);
});
我一直在犯这个错误

访问位于“”的XMLHttpRequesthttp://localhost:3000/socket.io/? 来自源“null”的EIO=2&transport=polling&t=1602487581123-0已被CORS策略阻止:否 请求的资源上存在“Access Control Allow Origin”标头

使用
“socket.io”:“^2.3.0”,
对于服务器端,将服务器端代码更改为以下代码:

var express=require('express');
var-app=express();
var http=require('http')。createServer(应用程序);
var io=require('socket.io')(http);
var json={
var1:1,
var2:2,
var3:3,
};
io.on('连接',函数()){
io.send('message',json);
});
http.listen(3000,()=>console.log('http服务器正在监听端口3000');
对于CORS标头,默认情况下允许任何来源

我建议您在客户端使用最新版本的
socket.io
。你可以用这个

客户端:


文件
var socket=io.connect('http://localhost:3000');
socket.on('message',函数(数据,json){
log(数据,json);
});
为客户端创建HTTP服务器:

☁  64313396 [master] ⚡  http-server  -p 3001
Starting up http-server, serving ./public
Available on:
  http://127.0.0.1:3001
  http://172.31.160.227:3001
  http://10.23.128.81:3001
浏览器控制台的输出: