Quantcast
Channel: Using local and global variables properly in node.js - Stack Overflow
Viewing all articles
Browse latest Browse all 3

Using local and global variables properly in node.js

$
0
0

I am getting closer I think to understanding how global and local objects work in node.js but I am getting tripped up when it comes to something more complex like a server.

In my understanding in node.js a server is accessed by many but should only be instanced once so this confuses the hell out of me, I don't know how other servers behave (I'm using a web sockets server https://npmjs.org/package/ws)

I also understand:

var _global='global';function testing(){    var _local='local';    console.log(_global+'& '+_local);// 'global & local'    return;}testing();console.log(_global+'& '+_local);// 'global & undefined'

Now in node.js if I declared that _local var inside a server would that mean that it's a unique variable for each person?

If I create a global server:

var wss=new WebSocketServer({host:port});wss.on('connection',function(soc){    soc['uid']=Math.floor(Math.random()*101);    console.dir(soc);    });

navigate to the page that connects to the server, I see (on my putty ssh client) the websocket object with the attached id.

Then if a second user visits that page I see (in ssh) that the websocket object now looks like a new object no old id just a new one I don't see two connections...

So I was thinking

Should I make this socketserver local by putting it in a http.server and call the server with ajax?

client:

var xhr=XHRobject();xhr.open("POST","mysite.com:8005",true);xhr.setRequestHeader("Content-Type","text/csv");xhr.send('create server');

server:

var http = require('http');http.createServer(function(req,res){    req.on('data',function(chunk){        chunk=chunk.toString('utf8');        if(chunk==='create server'){            wss=new WebSocketServer({host:port});//etc..            }        });    });

This would create a problem though I think as the WebSocketServer has a list wss.clients list of connected websockets that needs to be accessed so I don't think that I should have more than one server...?

If I declaire a variable (var localisedsocket) and put the wss.on('connection',function(soc){soc=localisedsocket;}); inside the http server, then would every user that opens the WebSocketServer no-longer be writing over the socket object?

Am I getting this theory right?


Viewing all articles
Browse latest Browse all 3

Latest Images

Trending Articles





Latest Images