Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

Authentification et filtre données


Sujet :

NodeJS

  1. #1
    Membre à l'essai
    Authentification et filtre données
    Bonjour,

    J'essaye de monter une petite appli sous NodeJS et j'aimerai avoir des éclaircissements sur la méthode que je dois utiliser.

    J'ai un script NodeJS sur un serveur qui qui se connecte sur une socket et récupère des flux en permanence.

    Ce script se met en ecoute sur le serveur local pour permettre a des clients de récupérer les flux.

    Ma 1ere question c'est a votre avis combien de clients peuvent se connecter sur le websocket en simultané. Es ce que c'est uniquement dépendant du matériel du serveur ou es ce que NodeJS a ces propres limitations.

    2eme chose : a des fins de tests; quand je me connecte avec mon navigateur sur le websocket j'ai bien ma page web et je recois le flux transmis au fur et a mesure par le scipt Nodejs.

    voici ma page web :
    Code html :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <html>
            <head></head>
     
            <body>
            <table  border="1px" bgcolor="#FAFAD2">
            <tr>
     
            <th>  Eventt<pre id="ami_data"></pre></th>
             <th> Aaa<pre id="ami_data2"></pre></th>
             <th> Bbb<pre id="ami_data3"></pre></th>
            </tr>
            </table>
              <script src="/socket.io/socket.io.js"></script>
              <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
     
     
     
     
              <script>
     
                var socket = io();
     
                socket.on('ami_data', function (data){  
     
     
                var str = document.getElementById("ami_data").innerHTML  += JSON.stringify(data.event) + "<br>"; 
                var str = document.getElementById("ami_data2").innerHTML  += JSON.stringify(data.event2) + "<br>";
                var str = document.getElementById("ami_data3").innerHTML  += JSON.stringify(data.event3) + "<br>";
     
     
                });
     
              </script>
     </body>
            </html>


    En 1er lieu comment gérer une authentification?
    Je souhaite ensuite utiliser l'authentification pour filtrer les ami_dataX et n'afficher que ce qui concerne l'utilisateur

    Donc ma dernière question : comment récupérer l'authentification et filtrer en particulier la variable ami_data

    merci d'avance

  2. #2

  3. #3
    Membre à l'essai
    bonjour

    merci en effet je l'avais vu

    entretemps j'ai revu mon architecture

    Je pense que je vais une appli nodejs qui se connecte sur un serveur et reroute le contenu de ce que le serveur envoi a X clients qui se conencte sur l'appli nodejs. Les clients seront probablement en web type php.

    Par contre a votre avis combien de connexion simultanée l'appli nodejs pourrait avoir?

    De plus j'ai lecode suivant:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    var io = require('socket.io').listen(app);
        var AsteriskAmi = require('asterisk-ami');
        var express= require('express');
        var http=require('http');
        var app = require('express')();
        var http = require('http').Server(app);
        var io = require('socket.io')(http);
        var ami = new AsteriskAmi( { port : '5038', host: '127.0.0.1', username: 'test', password: 'test' } );
     
     
        app.get('/', function(req, res){
     
        //send the index.html file for all requests
        res.sendFile(__dirname + '/index.html');
     
        });
     
        http.listen(3001, function(){
     
        console.log('listening on *:3001');
     
      });
     
        ami.on('ami_data', function(data){
        console.log('AMI DATA', data);
        io.sockets.emit('ami_data', data);
         });
     
     
     
        ami.connect(function(response){
        console.log('connected to the AMI');
        setInterval( function() {
     
        ami.send({action: ''});           
     
        }, 10000);
      });
     
        process.on('SIGINT', function () {
        ami.disconnect();
        process.exit(0);
     
      });



    La connexion se fait et les résultats sont envoyé sur le port 3001 et une page web index.html.

    Comment simplement envoyer les résultats vers les clients conenctés sur le port 3001. Je ne veux pas passer par la page web index.html, car voulant revenir a du php que je connais mieux et suffira pour faire du filtrage ensuite des données arrivant du serveur

    merci d'avance

###raw>template_hook.ano_emploi###