Я пытаюсь отправить координату с сервера node.js и socket.io (index.js
) на client.html
. В HTML-клиенте координата будет прочитана Leaflet. Проблема в том, что координата не может быть прочитана или NaN в client.html
Я попробовал простое прямое инициирование переменной и следую инструкциям на страницах Socket.IO
Сервер (index.js)
var e = require('express')();
var http = require('http').Server(e);
var sio = require('socket.io')(http);
http.listen(3000);
e.get('/', function(req, res) {
res.sendFile(__dirname + '/public/client.html');
});
sio.on('connection', function(socket) {
socket.on('ping', function(msg) {
socket.emit('pong', {lat:parseFloat(35+Math.random()),lon:parseFloat(-106+Math.random())});
});
});
Клиент (client.html)
var socket = io.connect('http://localhost:3000');
socket.on('pong', function(msg) {
console.log("Nilai msg : "+msg);
L.marker([parseFloat(msg.lat),parseFloat(msg.lon)]).addTo(map).bindPopup("("+msg.lat+","+msg.lon+")").openPopup();
var map = L.map('map', {
center: [35.10418, -106.62987],
zoom: 9
});
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png').addTo(map);
map.on("click", function(){
socket.emit('ping', {msg: 'Hello'});
});
Я ожидаю, что карта покажет маркер с соответствующей координатой, но фактический результат будет Error: Invalid LatLng object: (NaN, NaN)