Here after a simple event registering function.
Registration work perfectly, but I fail to unregister from event. I obviously check that I enter in the unregistration part with a console.log, but nothing happen. RemoveListener function is gently ignored :(
My 3 event functions have static names, what's wrong ?
Thank you.
DevAdapter.prototype.HookEventHandler = function(socket, gpsd) {
count = 0;
var EventHandlerQueue = function (status, job){
message=util.format ("#-%d Queue Status=%s DevId=%s Command=%s JobReq=%d Retry=%d\n", count++, status, job.devId, job.command, job.request, job.retry);
socket.write (message);
};
// Events successful process by tracker adapter
var EventHandlerAccept = function (device, data){
message=util.format ("#-%d Action Imei:[%s] Name:[%s] Cmd:[%s] Lat:%d Lon:%d Speed=%d\n", count++, device.imei, device.name, data.cmd, data.lat, data.lon, data.speed);
socket.write (message);
};
// Events on action refused by tracker adapter
var EventHandlerError = function(status, info, adapter, client){
message=util.format ("#-%d Notice Info=%s Data=%s Adapter=%s Client=%s\n", count++, status, info, adapter, client );
socket.write (message);
};
// socket closed let's clear event
if (socket === null) {
gpsd.Debug(7, "Remove Telnet gpsd event listener [%s]", gpsd.uuid);
gpsd.event.removeListener("queue" ,EventHandlerQueue);
gpsd.event.removeListener("accept",EventHandlerAccept);
gpsd.event.removeListener("error" ,EventHandlerError);
} else {
// Events from queued jobs
message=util.format ("> Hook On [Listening for gpsd [queue|acept|error] events\n");
socket.write (message);
gpsd.event.on("queue" ,EventHandlerQueue);
gpsd.event.on("accept",EventHandlerAccept);
gpsd.event.on("notice",EventHandlerError);
}
};