使用Socket.io将json数据发送到Node.js

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Socket.io将json数据发送到Node.js相关的知识,希望对你有一定的参考价值。

我正在使用socket.io技术在Node.js中做一个项目。这是我在html中编写的代码:

<script type="text/javascript" src="data.json"></script>
<script type="text/javascript">
    var mydata = JSON.parse(data);

    var markers = mydata.map(function (location) {
        return {
            title: location.yer,
            lat: location.lat,
            lng: location.lng
        };
    });

    $(document).ready(function () {

        var socket = io.connect("http://localhost:1234");
        socket.emit("test", mydata);

        socket.on("test", function (data) {

            //$("body").append("Name : " + data.value1 + ", Age : " + data.value2);
            //$("body").append("<br>");
        });

    });

这是我在node.js端的server.js上编写的代码:

var io = require("socket.io").listen(server);

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

console.log("User Connected");

socket.on("test", function (data) {

    console.log("Yer : " + data.value1 + ", Lat : " + data.value2 + ", Long : " + data.value3);
});

socket.on("disconnect", function () {

    console.log("User Disconnected");
});
});

当我第一次打开html页面时,我从data.json文件中获取数据以及html。获取后,我可以将其映射到JavaScript并将其分配给mydata变量。我将此变量发送到Node.js的服务器端,并使用我在html中使用jQuery编写的代码。与Node.js的连接工作正常,但是当我将这个json数据发送到node.js时,当我打印发送到控制台的数据时,我看到消息“Location:undefined,Lat:undefined,Long:undefined” 。我不明白我在哪里讨厌。你能帮助我吗?

答案

因此,服务器websocket处理程序接收一个对象数组,但您尝试将其解析为它是一个对象。试试这个,请:

socket.on("test", function (data) {
    data.forEach(obj => {
        console.log("Yer : " + obj.yer + ", Lat : " + obj.lat + ", Long : " + obj.lng);
    })
});

以上是关于使用Socket.io将json数据发送到Node.js的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 node.js 和 socket.io 将文件从 iPhone 发送到另一台 iPhone?

如何将二进制数据从 Node.js socket.io 服务器发送到浏览器客户端?

通过Socket.io(Node.js)将对象发送到客户端

使用 Socket.IO 将 Node.JS 服务器连接到另一个 Node.JS 服务器?

使用 websockets (Node, Socket.io) 读取 CSV 文件并间隔发送数据

PHP 向 Node / Socket.IO 服务器发送消息