Sto cercando di ottenere l'applicazione node.js per interagire con un lettore di impronte digitali .NET SDK denominato U.are.U. L'SDK fornisce librerie .dll (win32 e x64), Java e .NET. Ho deciso di utilizzare .NET per il semplice utilizzo, avendo tutte le interfacce pronte per l'uso e tutte.Lettore di impronte digitali su node.js tramite .NET SDK
Quindi, il problema corrente che sto affrontando è come chiamare quelle funzioni .NET e conservare ancora la natura asincrona di node.js. Il flusso dell'applicazione (nell'esempio .NET) è piuttosto semplice, 3 chiamate sulla libreria e l'impronta digitale.
private IEnumerable<Fmd> CaptureAndExtractFmd()
{
while (!reset)
{
DataResult<Fmd> resultConversion;
try
{
if (count >= 8)
{
SendMessage("Enrollment was unsuccessful. Please try again.");
count = 0;
break;
}
Fid fid = null;
if (!_sender.CaptureFinger(ref fid))
break;
if (fid == null)
continue;
count++;
resultConversion = FeatureExtraction.CreateFmdFromFid(fid, Constants.Formats.Fmd.ANSI);
SendMessage("A finger was captured. \r\nCount: " + (count));
if (resultConversion.ResultCode != Constants.ResultCode.DP_SUCCESS)
break;
}
catch (Exception)
{
break;
}
yield return resultConversion.Data;
}
}
Come posso cambiarlo in modo che possa essere utilizzabile in node.js, anziché in un programma GUI .NET?
È inoltre necessario notare che il nodo.js non chiama sempre una funzione sul programma .NET per ricevere una funzione. La parte identificativa del programma avviene in modo asincrono e viene attivata quando qualcuno mette un dito sul lettore di impronte digitali, il che significa che la parte node.js non ha idea di quando ciò accadrà. Quindi non posso fare affidamento sul chiedere continuamente dati su .NET. Devo chiamare callback su node.js senza che sia stato richiesto. Quindi, fondamentalmente, è una comunicazione bidirezionale, non solo su richiesta, dal momento che richiedere un utilizzo di un server web sarebbe molto più semplice.
ho trovato una libreria node.js in grado di colmare il divario tra .NET e Node.js chiamato edge.js questo sarebbe di alcun aiuto?
In sostanza, edge.js può farlo funzionare, insieme a node-webkit (che sarò spedendo la mia app), posso chiamare le API dei nodi direttamente nella pagina, così posso aggiornare il DOM a seconda del risultato dalla biblioteca. Devo essere in grado di registrare un'attività asincrona che CAN può notificare dall'interno del CLR alla controparte node.js o emettendo un evento o chiamando un callback!
Secondo l'autore edge.js può essere fatto facilmente https://github.com/tjanczuk/edge/issues/54#issuecomment-17967082 solo che non ho abbastanza competenze .NET di farlo (da un modulo pieno titolo) con tutti i callback.
Puoi spiegare perché stai spingendo te stesso con node.js qui? – vittore
Sto usando node-webkit, che può spedire un "browser" insieme al nodo.js dentro, e posso chiamare le API del nodo direttamente dai tag dello script, c'è un ponte senza soluzione di continuità tra i due, e dal momento che collegherò ogni app tra loro (stile P2P), è un must – pocesar
Si potrebbe voler dare un'occhiata a Reactive.NET (Rx.NET). L'ho usato prima per sparare i callback quando succedono le cose, il che è possibile con il suo concetto di abbonamento, simile agli eventi. – Chris