webSocket ws verifyClient-Funktion...

  • webSocket ws verifyClient-Funktion...

    Hallöchen, auf zum nächsten Thema ?(

    In ws wird eine Möglichkeit geboten eine Funktion anzugeben welche die Validierung übernehmen soll...

    JavaScript-Quellcode

    1. const server = new webSocket.Server({
    2. server: host, // https
    3. verifyClient: app.validateUser // <-- diese hier =)
    4. });


    Hier würde ich ja gerne dem Klient seine ID zuweisen und entsprechend den clientWrapper starten (mehr dazu dann nach der Lösung dieses Problem in dem anderen Thread xD).

    JavaScript-Quellcode

    1. function WPOAPP(){
    2. var that = this; // refferenz for async functions
    3. var clients = {}; // hier die clients auflisten nach ID (später/ anderer Thread)
    4. this.on = function(name, func){ this[name] = func; } // register new functions
    5. this.getUniID = function(){ return Math.floor(Math.random() * (99999999 - 999 + 1)) + 999; } // Beispiel...
    6. this.validateUser = function( data ){
    7. // console.log( data.req.headers.cookie );
    8. // console.log( data.req.client );
    9. // validierung mit cookie und co wird hier noch folgen, setzte dann clientID und client wrappen
    10. data.req.client.id = 'test'+that.getUniID();
    11. console.log( 'client has get ID:', data.req.client.id);
    12. return true;
    13. }
    14. }
    15. const app = new WPOAPP();
    16. const host = new https.createServer({
    17. cert: fs.readFileSync('/srv/mm/node_modules/wpocms/server.crt'),
    18. key: fs.readFileSync('/srv/mm/node_modules/wpocms/server.key')
    19. }).listen(8080);
    20. const server = new webSocket.Server({
    21. server: host,
    22. verifyClient: app.validateUser
    23. });
    24. server.on('connection', function connection(client){
    25. // console.log('client is validated & connected', client.id);
    26. // console.log( client );
    27. console.log('client is validated & connected', client.id);
    28. });
    Alles anzeigen
    Komischwerweise ist id undefined obwohl es vorhanden ist wenn ich den gesamten client in die console schreiben lasse, schaut dann so aus:

    Quellcode

    1. id: 'test62749449',
    2. [Symbol(asyncId)]: 12,
    3. [Symbol(bytesRead)]: 0,
    4. [Symbol(asyncId)]: 14,
    5. [Symbol(triggerAsyncId)]: 6,
    6. [Symbol(websocket)]: [Circular] } }
    7. juhu server running
    8. client hast get ID: test62749449
    9. client is validated & connected undefined

    Die Frage ist warum? Es ist doch vorhanden im Objekt :(
    Oder es versteckt sich noch eine Ebene dazwischen aber das sieht man in SSH ja nicht, da der obere Part abgeschnitten ist.
    Das müsste ich fix lösen damit der andere Posten den ich gerade am schreiben bin wieder Sinn ergibt =)

    LG: paykoman
    ::EDIT::
    Sinn und Zweck ist das die interne client.id bereits bei on('connection') gesetzt ist und innerhalb eben einfach mit client.id abgefragt werden kann...

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Paykoman ()