socket.io 및 node.js를 사용하여 Google지도에서 위치를 업데이트하려고합니다. 지도를 업데이트하는 데 2 가지 다른 방법이 있습니다. 아마도 내가 새로운이 기본 문제 일 겁니다.소켓 및 node.js 전송
app.post ('/ 위치', 기능 (요청, 응답) {
var obj = request.body;
//var obj = { gps_latitude: '59.33535', gps_heading: '0.0', gps_timestamp: '1397132411524', gps_speed: '0.0', device_id: 'oscar', gps_longitude: '17.999672099999998' };
//insertLocation(obj);
console.log("Connected clients: " + map_clients.length);
for(var i=0; i < map_clients.length; i++){
var client = map_clients[i];
var jsonString = JSON.stringify({ type:'gps', data:obj});
console.log(jsonString);
client.send(jsonString);
}
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("OK");
response.end();
});
2)에서 소켓을 사용하여 업데이트 :이처럼 보이는 작동하는 API 호출을 사용
1) 이 클라이언트는 작동하지 않습니까? 나는 그것이 콘솔에서 데이터를 전송하는 것을 볼 수 있습니다
io.sockets.on("connection", function(client){
map_clients.push(client);
//Update position
client.on('position', function (data) {
var obj = { gps_latitude: '59.33535', gps_heading: '0.0', gps_timestamp: '1397132411524', gps_speed: '0.0', device_id: 'oscar', gps_longitude: '17.999672099999998' };
var jsonString = JSON.stringify({ type:'gps', data:obj});
console.log(jsonString);
client.send(jsonString);
});
client.on('disconnect', function(){
map_clients.splice(map_clients.indexOf(client), 1);
})
});
: 서버 코드처럼 보이는
디버그 - 3 ::: { "유형"쓰기 웹 소켓 : "GPS", "데이터" { "gps_latitude": "59.33535", "gps_heading": "0.0", "gps_timestamp": "1397132411524", "gps_speed": "0.0", "device_id": "oscar", "gps_longitude": "17.999672099999998"}}
하지만지도가 업데이트되지 않습니다. 지도 클라이언트 측에서이 코드가 있지만 위의 소켓 코드를 통해 tpo 업데이트를 시도 할 때 결코 트리거되지 않습니다. 서버 측에서
client.on('position', callback)
를 사용하는 경우
socket = io.connect(socket_url);
socket.on('message', function(d){
console.log("update position");
var parsedObj = JSON.parse(d);
if(parsedObj.type === 'gps'){
var gps = parsedObj.data;
$('#messages').append(formatGPSHTMLOutput(gps));
processGPS(gps);
}
});
흠 이제 나는별로 따라하지 않습니다. 2 개의 클라이언트 쪽 페이지가 있습니다. 1) thats가 위치를 보냅니다. 2) 서버를 통해 1 페이지에서 위치를 얻습니다. 페이지 1에서 위치를 보내려면 : function initSocket() { socket = io.connect (socket_url); \t socket.emit ('위치', {gps_latitude : '59 .33535 ', gps_heading :'0.0 ', gps_timestamp :'1397132411524 ', gps_speed :'0.0 ', device_id :'oscar ', gps_longitude : '17 .999672099999998'}); console.log ('위치 전송'); } 그리고 서버에서 스크립트를 실행합니다. 그러나 서버와 페이지 2 사이의 연결은 작동하지 않습니다. – morto