繁体   English   中英

无法在客户端接收json

[英]Unable to receive json at client

我的服务器如下:

var http = require('http');

//Lets define a port we want to listen to
const PORT=8092; 

//We need a function which handles requests and send response
function handleRequest(request, response){

    response.statusCode = 200;
    response.setHeader('Content-Type', 'application/json');

    response.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000');
    response.setHeader('Access-Control-Request-Method', '*');
    response.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET');
    response.setHeader('Access-Control-Allow-Headers', '*');
    response.setHeader('Access-Control-Allow-Credentials', 'true');

    var responseBody = {
    'foo': 'bar'
    };

    response.write(JSON.stringify(responseBody));
    response.end();    
}

//Create a server
var server = http.createServer(handleRequest);

//Lets start our server
server.listen(PORT, function(){
    //Callback triggered when server is successfully listening. Hurray!
    console.log("Server listening on: http://localhost:%s", PORT);
});

在客户端,我使用以下方法收听:

const socket = io('http://localhost:8092');

socket.on('foo', function(msg){
   console.log(msg);
 });

但是,没有任何内容输出到控制台。 我可以看到以下连续在网络上发送:

localhost   resource-type-xhr   POST    HTTP    200     
localhost   resource-type-xhr   GET     HTTP    200 

并且http:// localhost:8092 / socket.io /?EIO = 3&transport = polling&t = LRMGBeD返回: {"foo":"bar"}

我究竟做错了什么?

emit事件foo @server,以便您可以on事件@client上使用

您需要在两端(服务器和客户端)使用socket.io。

服务器:

    var io = require('socket.io').listen(server);
    io.socket.emit('foo',{"foo":"bar"});

客户:

socket.on('foo', function(msg){
   console.log(msg);
 });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM