使用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 服务器连接到另一个 Node.JS 服务器?