Re: [nodejs] Re: I cannot export jQuery correctly; testing Node.js with mocha and chai
Hi Mikkel This is a good work around. I think you might be right---I may not have been thinking clearly about jquery. Thanks, Evan On Mon, Apr 30, 2018 at 3:54 PM, Mikkel Wilson <codeb...@gmail.com> wrote: > So, this is a server-side javascript environment. jQuery is more suited to > a client-side environment (in a browser, not on a server). I think you're > trying to use jQuery to make a request to a /metadata endpoint on a server > to get some JSON. I'd suggest you use the 'request' package instead. > > First, install the package: > > npm install request --save > > > Then, you can use it in your misc.js file: > > const request = require('request'); > > > Finally, you can replace your $.ajax call with request like this: > > request(Misc.server+'/metadata', function(err, response, body){ > if(err) { > console.log(err); > return; > } > console.log(body); > } > > HTH, > Mikkel > https://www.oblivious.io/ <https://www.oblivious.io/?r=googlenodejs> > > On Sunday, April 29, 2018 at 2:16:34 PM UTC-7, EB wrote: >> >> I'm confused how to export jQuery correctly in order to test several >> functions with mocha and the assertion library chai. Hopefully this is a >> beginner's error... >> >> Here is the code I am testing, with the branch `add_tests`: >> >> https://github.com/mskilab/gGnome.js/tree/add_tests >> >> I'm having trouble with the functions in >> https://github.com/mskilab/gGnome.js/blob/master/js/misc.js >> >> with the tests here: >> https://github.com/mskilab/gGnome.js/blob/add_tests/test/miscTest.js >> >> >> So, in order to export jQuery, I include the following line: >> >> https://github.com/mskilab/gGnome.js/blob/add_tests/js/misc.js#L2 >> >> const $ = require('jquery'); >> >> However, I'm still getting errors when I try to use the functions in >> `miscTest.js`, whereby I'm running `mocha` or `npm test`, I get a TypeError: >> >> TypeError: $.ajax is not a function >> >> This is from trying to run >> >> console.log(Misc.metadata); >> >> within `misc.js` >> >> How do I correctly export jQuery so it's recognized? >> >> -- > Job board: http://jobs.nodejs.org/ > New group rules: https://gist.github.com/othiym23/9886289#file- > moderation-policy-md > Old group rules: https://github.com/joyent/node/wiki/Mailing-List- > Posting-Guidelines > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to nodejs+unsubscr...@googlegroups.com. > To post to this group, send email to nodejs@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/nodejs/76053819-61e2-4878-9f7b-2c44af693e31%40googlegroups.com > <https://groups.google.com/d/msgid/nodejs/76053819-61e2-4878-9f7b-2c44af693e31%40googlegroups.com?utm_medium=email_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. To post to this group, send email to nodejs@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/CABFhwYNFwiOEOvm1-WpYNSrQ2JfmxYmNQZGF2G%3DhDvUSJTqSAQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
[nodejs] Re: TCP and HTTP server together?
The code is all available on Github: https://github.com/evantahler/actionhero To start your own project using actionhero: - Install node and npm - in a new directory, run `npm install actionhero` which will download the library locally - generate a new project with `./node_modules/.bin/actionhero generate` - and then from there you can start your new project with `npm start` Documentation is here: http://www.actionherojs.com/docs/ On Tuesday, May 12, 2015 at 1:53:24 PM UTC+1, Ket wrote: Can you point out how built it from scratch. Using third party software cause a lot of headache. On Thursday, May 3, 2012 at 10:53:56 AM UTC+7, Evan wrote: Applications like this are why I built http://actionherojs.com/ Let me know what you think! On Tuesday, May 1, 2012 9:05:58 PM UTC-7, ss9 wrote: I have a unique app I need to build: 1. Gets a request from a browser 2. Passes a call to a TCP server which sends a UUID to a 3rd party 3. TCP server listens for streams from the 3rd party. 4. TCP server filters the stream to send the UUID messages back to the HTTP server 5. HTTP server does something with the message. I've had a few thoughts so far which include two different node servers, one tcp and one http... or one server that does both, maybe spawns child processes for the tcp part? Any thoughts on the best way to go about this? -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. To post to this group, send email to nodejs@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/93bb2eb4-4c74-4331-847b-5195bc6dfec0%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[nodejs] Re: Queue management with Express framework
Express is a web server framework. Queue systems like node-resque https://github.com/taskrabbit/node-resque exist for this On Thursday, January 22, 2015 at 12:56:30 AM UTC-8, dhaval shah wrote: Hello Guys, Wanted to know if Express framework support persistent queue management or not. If not then what are options ? Thanks, Dhaval -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. To post to this group, send email to nodejs@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/0ebe5a4a-b825-4b3a-92b7-6dbbb59697af%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[nodejs] Re: Node.js + DMX
Solved here for the curious: https://gist.github.com/evantahler/9755268 On Tuesday, March 25, 2014 8:33:32 PM UTC-7, Evan wrote: Anyone here have experience creating DMX (the lighting proticol) buffers with node? I'm having some trouble crafting my message packet and would love some help. Here's a gist of what I've got so far https://gist.github.com/evantahler/9755268' --- I need help talking to the Enttec Open DMX USBhttp://www.enttec.com/index.php?main_menu=Productspn=70303 DMX controller. I feel that I'm very close, and only have trouble with forming the DMX buffer itself (starting on line 101)https://gist.github.com/evantahler/9755268#file-dmx-js-L101-L123 - The excellent fdti https://github.com/KABA-CCEAC/node-ftdi package for node easly fins the device and can connect to it. - if you are on Maverics, you need to unload the built-in OSX FTDI driver with sudo kextunload -b com.apple.driver.AppleUSBFTDI - The DMX device relies on the computer to continuously send data (there is no onboard clock) - DMX operates at about 40 fames/sec, so we send the universe every ~20 ms (the exact frequency shouldn't matter, as DMX devices will keep their last state until the next signal) - The DMX start/stop codes, baudrate, etc have been confirmed and validated by both this rubyhttps://github.com/crux/enttec-dmx-usb-pro-tools/blob/master/lib/enttec-dmx-usb-pro-tools/rdmx.rb and nodehttps://github.com/wiedi/node-dmx/blob/master/drivers/enttec-usb-dmx-pro.js package - I can confirm that I can talk to the dmx device and the hardware works by using this OSX product http://lightning-dmxcontrol.com/ - I can reach the dimmer pack, as when I send a signal, it does register a DMX signal... hence my supposition that the message is malformed. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[nodejs] Node.js + DMX
Anyone here have experience creating DMX (the lighting proticol) buffers with node? I'm having some trouble crafting my message packet and would love some help. Here's a gist of what I've got so far https://gist.github.com/evantahler/9755268' --- I need help talking to the Enttec Open DMX USBhttp://www.enttec.com/index.php?main_menu=Productspn=70303 DMX controller. I feel that I'm very close, and only have trouble with forming the DMX buffer itself (starting on line 101)https://gist.github.com/evantahler/9755268#file-dmx-js-L101-L123 - The excellent fdti https://github.com/KABA-CCEAC/node-ftdi package for node easly fins the device and can connect to it. - if you are on Maverics, you need to unload the built-in OSX FTDI driver with sudo kextunload -b com.apple.driver.AppleUSBFTDI - The DMX device relies on the computer to continuously send data (there is no onboard clock) - DMX operates at about 40 fames/sec, so we send the universe every ~20 ms (the exact frequency shouldn't matter, as DMX devices will keep their last state until the next signal) - The DMX start/stop codes, baudrate, etc have been confirmed and validated by both this rubyhttps://github.com/crux/enttec-dmx-usb-pro-tools/blob/master/lib/enttec-dmx-usb-pro-tools/rdmx.rb and nodehttps://github.com/wiedi/node-dmx/blob/master/drivers/enttec-usb-dmx-pro.js package - I can confirm that I can talk to the dmx device and the hardware works by using this OSX product http://lightning-dmxcontrol.com/ - I can reach the dimmer pack, as when I send a signal, it does register a DMX signal... hence my supposition that the message is malformed. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[nodejs] sails.js : req.session is not defined?
sails.js : req.session is defined? (sails.js is a node.js framework) I am trying to learn node.js recently. And sails.js looks promising. I just setup sails project, everything works ok. except that req.session is undefined. Here is my config: module.exports.session = { secret: '0f18410746715474fa79f357f6dedd75', adapter: 'redis'}; when I try to use, req.session.user = 'admin' I find that req.session is not defined. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [nodejs] Re: What's the unicorn for Node? How should I think of deployment?
Ahh! Thanks for clearing that up. On Sun, Nov 17, 2013 at 12:25 PM, Matt hel...@gmail.com wrote: On Sat, Nov 16, 2013 at 9:22 PM, Evan evantah...@gmail.com wrote: @matt I guess it really depends on your application logic. My understanding of cluster.disconnecthttp://nodejs.org/api/cluster.html#cluster_cluster_disconnect_callback is that the worker/child will instantly close all open sockets/pipes/etc. That means that if you have a client mid-request, that request will timeout. I don't think the client will see a true connection failure, as they are technically connecting `via` the cluster master, and the socket (as far as they can see) will remain open. This kind of thing gets dangerous if you are mid-database operation or similar. Nope, that's not how worker.disconnect() works. It just tells the master to not send any more connections to that child, allowing it to gracefully exit. Now of course if the child has some other reason to stick around (a setInterval or an outbound connection somewhere) then it will do so, but you need to take care of that in any system which supports graceful restarts. Matt. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to a topic in the Google Groups nodejs group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/nodejs/PiG9kQ9u-CU/unsubscribe. To unsubscribe from this group and all its topics, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
[nodejs] Re: What's the unicorn for Node? How should I think of deployment?
To me, when I read unicorn model, I look at it as a combination of 2 things: - a master-slave relationship which allows for multiple servers to share a port/socket in order to load balance - a signaling pattern to manage the whole thing. As others have pointed out, node's built-in cluster module already handles part 1 for you really nicely. What might not be so obvious up front is that children in a cluster can share *any* socket, not just HTTP connections. One of the trickier things unicorn does which you can do simply in node is monitor the health of the child processes. You get events for children booting and dying so you can tell if you should spawn a new worker, etc. I was heavily influenced by Unicorn's design and signal patterns when I implemented actionHero's cluster modulehttps://github.com/evantahler/actionHero/blob/master/bin/methods/startCluster.js. At it's heart is is just a wrapper around `cluster` with some signal handling. The trickier part was actually building my application to be comfortable in transitional states. For example, if the TCP/TLS server was signaled to shut down, it needs to ignore all incoming new connections and send a 'goodbye' message to all existing ones. It's nothing overly complicated, but it's a little more to keep in mind when developing, assuming your goal is 0-downtime deployments. All in all, I really like Unicorn's patterns. It makes it possible to 'roll' code without taking your server down, signal that you need more or less workers, and have a single parent application to monitor and control everything. That said, I tend to always keep nginx in front of *every* application I create (regardless of language) to handle static assets, rate-limit, etc. On Thursday, November 14, 2013 8:22:16 AM UTC-8, Eric Mill wrote: I'm totally fine being told that the Unicorn model is the wrong way to think of things in Node. But what are the best practices for deploying a Node app where I'd like to be able to scale the number of processes up and down easily on a box? The model I'm used to is putting nginx in front, having it proxy to a Unix socket, and then having Unicorn watch the same Unix socket. I'm aware of node-http-proxyhttps://github.com/nodejitsu/node-http-proxy - should I run one of these with foreverhttps://github.com/nodejitsu/forever -- and then also manage my express processes with forever? How should I be conceiving of the problem? -- Eric -- konklone.com | @konklone https://twitter.com/konklone -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [nodejs] Re: What's the unicorn for Node? How should I think of deployment?
@matt I guess it really depends on your application logic. My understanding of cluster.disconnecthttp://nodejs.org/api/cluster.html#cluster_cluster_disconnect_callback is that the worker/child will instantly close all open sockets/pipes/etc. That means that if you have a client mid-request, that request will timeout. I don't think the client will see a true connection failure, as they are technically connecting `via` the cluster master, and the socket (as far as they can see) will remain open. This kind of thing gets dangerous if you are mid-database operation or similar. On Saturday, November 16, 2013 5:53:49 PM UTC-8, Matt Sergeant wrote: On Sat, Nov 16, 2013 at 3:38 PM, Evan evant...@gmail.com javascript:wrote: I was heavily influenced by Unicorn's design and signal patterns when I implemented actionHero's cluster modulehttps://github.com/evantahler/actionHero/blob/master/bin/methods/startCluster.js. At it's heart is is just a wrapper around `cluster` with some signal handling. The trickier part was actually building my application to be comfortable in transitional states. For example, if the TCP/TLS server was signaled to shut down, it needs to ignore all incoming new connections and send a 'goodbye' message to all existing ones. It's nothing overly complicated, but it's a little more to keep in mind when developing, assuming your goal is 0-downtime deployments. But the cluster module handles this via worker.disconnect(). Zero downtime updates are just a matter of spawning a new set of children and telling your current ones to .disconnect(). -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
[nodejs] Re: Is it a right thing to do, to use Node.JS as a TCP Server?
http://actionherojs.com/ can run a TCP/TLS server. The project can share your code between http, websocket, and 'raw' TCP clients (assuming everyone speaks JSON). On Friday, June 21, 2013 10:20:25 AM UTC-7, Kaveh Shahbazian wrote: Is it a right thing to do, to use Node.JS as a TCP Server? Does that considered as abusing Node.JS? And if anybody had did that what were the pros and cons in the long run? -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
[nodejs] Blogs and Further Reading?
I'm a moderate-to-advanced node.js user. I want to read up on cool new packages coming out, environment/deployment best practices, conference talks, and things like that. What are the best node.js blogs and newsletters I can check out? Thanks! -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [nodejs] Cluster - soft restart support needed
@Isaacs Thanks for the module! It has a nice clean syntax. I may replace actionHero's cluster server with it :D I too agree that having a 'graceful reload' feature in clustered deployments is a great feature. This is especially useful when you host the app yourself and don't rely on providers like appfog and heroku where deployments are literally new servers switched at the load balancer. However, I am in agreement with Isaacs that building a graceful reload into node's core cluster module is a bad idea. I think that doing so would create a very complex API which is also very likely not to cover everyone's use cases. Some examples: If your app is just an http(s) server, all you need to do is call `server.close()`. Node is awesome and the server will stop handling new connections, and will still finish existing requests. However, how do you know to wait until all requests are complete before terminating this child? How long do you wait? What if there are websockets bound to this server? Will your clients know how to reconnect? What if you have a socket/tls server? You probably need to signal each client with a 'goodbye' message and be sure that whatever they are working on is complete. Perhaps most importantly, what if your server is processing some background tasks? You need to be sure that they are allowed to finish, less you loose the job they are working on. Here are links to my examples above. These are all teardown functions which every worker in the custer does when it is signaled to shut down (and they are all from one application!). Web (http/https) server: https://github.com/evantahler/actionHero/blob/master/servers/web.js#L66-L69 Telnet/TLS socket server: https://github.com/evantahler/actionHero/blob/master/servers/socket.js#L214-L239 Background Task Worker: https://github.com/evantahler/actionHero/blob/master/initializers/taskProcessor.js#L27-L43 On Friday, June 7, 2013 6:26:57 PM UTC-7, ryandesign wrote: On Jun 7, 2013, at 19:10, Isaac Schlueter wrote: I do this with the npmjs.org site using the cluster-master module. https://npmjs.org/package/cluster-master Thanks, I'm sure I've heard of that before, and will remember to look into it once I get to the point of deploying. I only have to restart the main process if there's a change to the main server.js file. Otherwise, I log into the repl, and I can restart workers one by one, resize the cluster, etc. I guess I don't understand how this is accomplished. What repl are you talking about? Is this something custom you've written for the npmjs web site or is this easily available to anyone's nodejs site using the standard repl that appears when you run node? Could you point me to an example? Getting all the edge cases handled properly is very app-specific, and in multi-machine setups, it will be completely extraneous. So, unlike Ben, I would reject a pull request flat-out for this feature, unless someone could present a *very* compelling case for why everyone ought to have the same logic in all their apps. I don't believe that this belongs in core. Regardless of whether you run a single node process on a single server or several processes on several servers, most everyone will eventually want to deploy an updated version of the code and restart the server, and I don't think it's controversial to claim that doing so gracefully, without losing any connections, is best. Why, then, should each developer need to figure out anew how to do that, especially when as you say it's difficult to get right? -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [nodejs] Cluster - soft restart support needed
I approached this problem a little differently, and have a semi-decent solution in actionHero today: https://github.com/evantahler/actionHero/blob/master/bin/include/startCluster.js If the master process is simple enough, you can probably get away with rarely reloading it. Mine only handles the spawning of children and basic unix signaling. Parent and Child don't need to be running the same code, so your *real* application code is executed by the children. When it's time to upgrade the code for your application, you roll off (kill one, start a new one, repeat) the children until you have a newly spawned collection. Regarding websockets, one of the main reasons I moved from socket.io to Faye is that it supports clients reconnected to another server (with a redis backend). This way, clients will reconnect to a new cluster member as they roll over (albiet with some period of disconnect). On Thursday, June 6, 2013 3:49:59 PM UTC-7, ryandesign wrote: On Jun 6, 2013, at 05:22, Ben Noordhuis wrote: Secondly, I'm not sure how many people will actually use it. I assume most people have multi-machine setups where they simply take machines out of the load balancer one at a time and upgrade at their leisure. Having not put node into production yet, the procedure you describe sounds far from simple; it sounds like an involved multi-step process with many opportunities for human error. Wouldn't automating it in some officially-sanctioned way be good for everyone? -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [nodejs] Testing with self-signed certs
Whoa! Thanks for the helpful lvh.me idea Forrest! I'm now going to setup 'localhost.*.com' on every domain I own to facilitate HTTPS testing :D On Monday, May 20, 2013 8:22:48 AM UTC-7, Forrest L Norvell wrote: Hey James, I've never gotten cert stuff to work properly with localhost as the host name. Try generating your certificate for lvh.me (*.lvh.me resolve to 127.0.0.1 -- super handy) and requesting from same, and that should fix it. F On Monday, May 20, 2013, James Coglan wrote: Hi there, I have various test suites that use self-signed certs to test HTTPS/TLS stuff. I'm trying to use the 'ca' option of the tls and https clients to make them trust my certs, rather than forgoing validation at all, since I would rather give my projects APIs for adding CAs than for disabling validation. However when I pass my server certificate in the 'ca' option of an HTTPS request I get this error: Error: Hostname/IP doesn't match certificate's altnames I followed these steps to generate the certificate: http://www.akadia.com/services/ssh_test_certificate.html What does this error mean and how do I fix it? Here are some example scripts that demo the problem: // server.js var https = require('https'), fs= require('fs'); var server = https.createServer({ cert: fs.readFileSync('./server.crt'), key: fs.readFileSync('./server.key') }); server.on('request', function(request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello\n'); }); server.listen(8000); // client.js var https = require('https'), fs= require('fs'); var request = https.request({ method: 'GET', host: 'localhost', port: 8000, path: '/', ca: [fs.readFileSync('./server.crt')] }); request.on('error', function(error) { console.log('ERROR', error); }); request.on('response', function(response) { console.log(response.statusCode); }); -- James Coglan http://jcoglan.com +44 (0) 7771512510 -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [nodejs] Keep Calm and Node On
Awesome! Thanks for this. On Wednesday, March 6, 2013 1:38:42 PM UTC-8, Arunoda Susiripala wrote: Awesome, we've completed the goal. Now T-Shirt is real. Good Job guys :) On Thu, Mar 7, 2013 at 1:01 AM, Herman Junge h...@neosource.cljavascript: wrote: :-) Cool, only 17 left ATM http://teespring.com/keep-**calm-and-node-onhttp://teespring.com/keep-calm-and-node-on On 3/6/13 4:20 PM, jerome wrote: Done. Nice to be able to support the cause. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/**node/wiki/Mailing-List-** Posting-Guidelineshttps://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nod...@googlegroups.comjavascript: To unsubscribe from this group, send email to nodejs+un...@**googlegroups.com javascript: For more options, visit this group at http://groups.google.com/**group/nodejs?hl=en?hl=enhttp://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+un...@**googlegroups.com javascript:. For more options, visit https://groups.google.com/**groups/opt_outhttps://groups.google.com/groups/opt_out . -- Arunoda Susiripala @arunoda http://twitter.com/arunoda http://gplus.to/arunodahttps://github.com/arunoda http://www.linkedin.com/in/arunoda -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
[nodejs] Re: core dump analysis debugging
Slightly off topic, but I've been debugging some memory leaks in a node app, and after trying out quite a few heap and GC inspector packages, I've fallen in love with https://github.com/c4milo/node-webkit-agent. It's a one-liner require that lets you use chrome's built-in JS debugger for memory and CPU consumption... and it it works for node 0.8.x! On Thursday, January 31, 2013 3:39:58 PM UTC-8, Dan Milon wrote: I was wondering if it is possible to use a core dump from a node process running on linux as a post mortem debugging mechanism. Would smartos' MDB understand a core dump coming from a linux machine? Thanks, danmilon. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups nodejs group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
[nodejs] Re: multiplayer game: scaling lots of gamerooms
I've been working on a little node server framework that was started for a similar problem: http://actionherojs.com actionHero uses socket.io for websocket clients, but also extends the chatroom metaphor for TCP/TLS and even HTTP/S clients as well. It supports cluster and multiple servers (via redis pub/sub) so you can grow to more hosts if needed. On Tuesday, January 8, 2013 7:40:55 AM UTC-8, DerDree wrote: I'm programming a multiplayer game using node.js and socket.Io and during that work I got some questions and thoughts concerning performance. At the moment only one gameroom can be opened and the socketio server does forward basic messages like direction changes of players to the other connected clients and computes some basic game logic. Altough this works great at the moment I have some concerns how to realise this with a lot of gamerooms or servers like in other multiplayer games where you have a server browser with a list of different servers. As a simple aproach I would implement this with different rooms in socket.iosending messages only to sockets in the same game. But then still all messages are processed by only one socket.io server. I think latency would suffer at some point between clients. For example if you have something like this: GameRoom1 Client1 Client2 GameRoom2 Client3 Client4 ... .. then latency between Client1 and Client2 would be important, but latency between Client1 and Client3 wouldnt be that important because they dont need to message each other. My thought would be to open multiple socketio instances for each fixed number of open gamerooms. But I dont know if this is effective and how to direct the clients to the right instance. Also I dont know if latency would really be better because it would be still the same machine only with multiple instances. Another thought of mine would be to let one client be a server as a host like in other games and only register the server at a master server for the serverlist. But I havent found any realisation for this and dont think this is possible with socket.io. Surely you could make something like dedicated servers so that everyone opens his own socket.io server for the game, but I want that everyone on the website can open a new game with just a click. Also i wouldnt know how to secure others dont alter the socket.io server with some unsecure stuff. So I would like to know if there is any effective solution or some ideas or sources for this problem. Thanks in advance. -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
[nodejs] Re: PaaS that allows node.js to use non-http ports?
I've been looking for a PaaS provider with the same requirements as well, and haven't had much luck. I've tried appFog, Heroku, no.de (when it existed), and Nodejitsu and they all limit you to 1 (randomly assigned) http/s port. However, it's very easy to get node running on a vanilla Joyent or AWS instance these days, and you can have all the ports you want. I'm currently doing this, and it's really not that hard to manage. @Tomasz - can you talk more about your experiences using Azure? On Tuesday, November 6, 2012 9:34:06 PM UTC-8, Tomasz Janczuk wrote: You can listen on a TCP port to process arbitrary (non-HTTP) traffic using WIndows Azure Cloud Services. There are two varieties: Web Role and Worker Role. You need Worker Role. You can set up several instances and have Windows Azure load balance traffic between them. Check out the tutorial at https://www.windowsazure.com/en-us/develop/nodejs/tutorials/getting-started/ . On Tuesday, November 6, 2012 12:50:32 AM UTC-8, paul_tanner wrote: Hi, We have developed a webserivce built in node that susbcribes to TCP sockets to get realtime input. Having got excited about switching from dedicated severs to PaaS I seem to have hit a brick wall in that non-http ports are not yet supported on those I've looked at. This is a shame because quite a large class of apps are ruled out while this restriction remains. I hear that websockets will be supported real soon now. This is goodness but not enough for the above requirement. Have I missed anything or will I need to be super-patient on this? Regards, Paul -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
[nodejs] Re: HA / failover support
HARedis looks awesome! On Friday, October 5, 2012 12:12:15 PM UTC-7, carlos8f wrote: A downed server can't communicate, so it's impossible to transfer its state at that point. Thus it's better to have the servers check in with the global state frequently (i.e., redis) to prevent data/state loss. Then what happens when redis master goes down? My solution is to implement high-availability on the redis client level, which enables redis slaves to take over for a downed redis master: https://github.com/carlos8f/haredis I also developed a suite of modules called Amino (using haredis) which make it easy to create a failover-enabled cluster of node processes: https://github.com/amino/amino With this you don't need the core cluster module. You can have node processes across any number of physical servers, when node processes start up they are automatically added to the service pool, and removed when processes exit / become unavailable. The only configuration each process needs is a list of redis servers to use for global state (master is detected automatically by haredis). good luck :) On Thursday, September 20, 2012 6:15:39 AM UTC-7, Dave Horton wrote: Are there any features in node relating to high availability or failover of a server? I would like to be able to run a cluster of node servers (either physical or virtual) such that if any one dies the others will take over processing, including maintaining the state of running applications on the downed server. In the simplest case, two servers share a virtual IP and if one fails the other takes over the IP and my node applications keep running on the other server. Anything like this exist, or in the works? Or is there alternative best practice on achieving this type of reliability? Does v8 have any features to migrate a running execution context between servers? -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
Re: [nodejs] Re: How to properly coordinate a sole task between multiple processes on many servers
You are basically proposing the schema for DelayedJobs (Ruby) [ https://github.com/collectiveidea/delayed_job ]. This kind of thing gets really weird in eventually consistant databases, but Mongo (like mySQL) is always consistant so you should be OK. However, a lot of folks have been finding some locking problems with this approach (multiple job execution or really aggressive table locking is needed), so most folks tend to use a store which can support atomic push and pop operations so you can ensure that one and only one worker gets the job. Redis is the most popular of these types of stores these day. I make use of that property in http://actionherojs.com/ for exactly this purpose, as does the very popular https://github.com/defunkt/resque and some other projects. On Friday, October 5, 2012 12:32:39 PM UTC-7, Mark Hahn wrote: I may be crazy but I'm implementing a scheme where processes get the tasks from a db record and then stores their process number in that record. Then while they are running they periodically check to make sure that their server number is still the one in the record. If another process has 'stolen' the task then the process aborts and looks for another one to do. This is the only way I could figure out how to do task assignment when faced with a db that only has eventual consistency. The CouchDB i'm using offers no atomic operations so this was the only reliable way to do it. It works quite well. In the usual case it just grabs the task, does it, and moves on. Collisions are rare, but they may be more frequent as the cluster grows in size. On Fri, Oct 5, 2012 at 9:21 AM, Dan Milon danm...@gmail.com javascript: wrote: greelkorke ment using a job queue where jobs are put, and handed to workers. If you want to do it only with mongo, you'll need to use some lock document, that is set and unset by the first process which tries to initiate a task. All other processes which try to grab the lock while its held by another process should assume that the job is being worked by another process. But thats really ugly has problems because jobs cant be acknowledged, so if a process crashes while its performing some task, you're fucked. On Fri, Oct 5, 2012 at 5:07 PM, Tom tomm...@gmail.com javascript:wrote: Unfortunately I'm afraid that I don't see how a scheduler can avoid the concurrency problems. Note that the advantages (e.g. in availability) of having a cluster should be maintained here, and so you cannot run a scheduler in a separate process on a single server. If every server would be running the scheduler, the same concurrency problems would arise. What were you proposing? About the initialization, I guess that would work. It is not the way I would prefer to do it, as I would like the application to be self-controlled and usable without running special tools, but I reckon it is an acceptable approach. Tom Op vrijdag 5 oktober 2012 19:59:33 UTC+7 schreef greelgorke het volgende: i wouldn't do it that way. when deploying your app just do a pre-start script, that ensures the existence of your desired data. If you have periodical tasks, it's best to use a lib for it, that triggers jobs appart of your main application. i.E http://stackoverflow.com/**questions/3785736/is-there-a-** job-scheduler-library-for-**node-jshttp://stackoverflow.com/questions/3785736/is-there-a-job-scheduler-library-for-node-js, so you just avoid the concurrency problems. Am Freitag, 5. Oktober 2012 14:04:58 UTC+2 schrieb Tom: I've setup a cluster of physical servers. Each server runs exactly the same code. Moreover, each server runs multiple node processes using the build in cluster functionality. I use MongoDB (native) to share information between processes and servers. However, I am having some difficulty with running a special task that needs to be executed only once during initialization: if a special `admin` account does not yet exist in the database, it should be created Originally I figured that I could read from the MongoDB master server on each node and check if the admin account already exists. If it does not then another node has not yet created it, so this node should do so. However this is problematic because creating an admin password hash is asynchronous and takes time. Therefore there is a delay between when a node decides to create the account and when the account is being found by other nodes when querying the database. The code snippet that reads from the Mongo master only and creates the account is available here: https://gist.github.com/**3839429https://gist.github.com/3839429 In the future I would also like a special task to be executed every 5 minutes. This task must then only be executed by a running server, and not by all servers. In short: when running a cluster of servers, how do you coordinate between these servers which of
Re: [nodejs] Domains and GC
Awesome! It's nice to have a consistent interface. Thanks! On Thursday, September 27, 2012 6:04:43 AM UTC-7, Ben Noordhuis wrote: On Thu, Sep 27, 2012 at 7:58 AM, Evan evant...@gmail.com javascript: wrote: A rather esoteric question: Say I was following the example under explicit binding described in the domain api page [[ http://nodejs.org/api/domain.html ]]. This is a great real-world-ish example which shows how you might use domains in an HTTP server to catch connection-specific errors and not take down your server in the process. If you weren't to call localDomain.dispose() ( reqd.dispose() in the example ) directly at the end of the connection closure, would Node's GC eventually come around and remove of the domain? Yes, provided there are no more outside references to the request or domain object. That requirement is not specific to domains, of course. Would the act of garbage collection also call .dispose on the domain object, or would it (and anyobjectscontained within) just be removed? The latter, the objects simply get collected. -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
[nodejs] Domains and GC
A rather esoteric question: Say I was following the example under explicit binding described in the domain api page [[ http://nodejs.org/api/domain.html ]]. This is a great real-world-ish example which shows how you might use domains in an HTTP server to catch connection-specific errors and not take down your server in the process. If you weren't to call localDomain.dispose() ( reqd.dispose() in the example ) directly at the end of the connection closure, would Node's GC eventually come around and remove of the domain? Would the act of garbage collection also call .dispose on the domain object, or would it (and anyobjectscontained within) just be removed? -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
Re: [nodejs] HA / failover support
I wrote a blog post related to this a few weeks ago exploring what can be done from a deployment uptime POV regarding node [[ http://blog.evantahler.com/production-deployment-with-node-js-clusters ]] In a nutshell, you can use the native cluster module to manage a number of workers which handle the processing of requests, can be started/stopped as needed, and can be re-spawned when they die. You can also do 0 down-time deployments by rolling over your workers as there is new code to load in. Cluster workers can share ports and open sockets, and requests will be shared between them. The problem of storing state between failures/deployments is not really a node issue, but if you write to a persistant store (DB, disk, ect), you should be able to recover in the normal way. Another fun addition node adds is that there is a message passing interface within the cluster module between master and slaves, so you might also investigate keeping a replica of any important data in the master's memory space to seed new children with. You might want to look more into this if the state data moves too fast for redis or a database. On Thursday, September 20, 2012 7:59:31 AM UTC-7, theCole wrote: I have not seen anything like this currently. Would you also want all of the information from the failed server to fail over as well? On Thu, Sep 20, 2012 at 9:15 AM, Dave Horton da...@dchorton.comjavascript: wrote: Are there any features in node relating to high availability or failover of a server? I would like to be able to run a cluster of node servers (either physical or virtual) such that if any one dies the others will take over processing, including maintaining the state of running applications on the downed server. In the simplest case, two servers share a virtual IP and if one fails the other takes over the IP and my node applications keep running on the other server. Anything like this exist, or in the works? Or is there alternative best practice on achieving this type of reliability? Does v8 have any features to migrate a running execution context between servers? -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nod...@googlegroups.comjavascript: To unsubscribe from this group, send email to nodejs+un...@googlegroups.com javascript: For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
Re: [nodejs] Node.js on embedded platform
I once got node v4 compiled and running on an ARMv4 chipset [ docs here: https://gist.github.com/1574158 ] and I learned that: - I couldn't compile node on the device itself (not enough ram, and it would have taken days with the onboard CPU). Cross compiling was necessary - Node itself took about ~10mb to start, depending on how complex your application is - I needed to mount a USB drive as swap space because to handle spikes - The networking hardware on my board was kind of flaky, and I would receive some 'socket has gone away' messages (not exactly the error), so I needed some retry statements on my server However, once I had all this sorted out, node ran great for a number of months On Monday, September 17, 2012 8:28:28 PM UTC-7, Tim Caswell wrote: Yes, you can most likely get node on there but there won't be much left at all. I created a lua version of node for exactly cases like this at luvit.io. It's an order of magnitude more efficient on both ram and disk space with comparable performance and semantics, but at the cost of a much less mature platform. On Sep 17, 2012 2:48 AM, Ben Noordhuis in...@bnoordhuis.nljavascript: wrote: On Mon, Sep 17, 2012 at 7:56 AM, Shiplu shipl...@gmail.com javascript: wrote: I am creating a chat application which will run on embedded device. It has only 8MB flash memory and 16Mb RAM. Processor is ARM6. Is it possible to run nodejs application there? The application will be Ajax based heavy RIA application. It'll be heavy on client side. But not on server side. I googled many times but didn't find any clue about it. I am aware V8 can be compiled in to ARM. Not sure if its support all the ARM processors. To run node I must have V8 compiled and then node js should be compiled too. If anyone has experience on this please share how its done and what are the common issues. You can compile node.js and V8 for ARMv6 (the binary will actually be ARMv5 compatible) but 16 MB is probably not enough to do anything useful. -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nod...@googlegroups.comjavascript: To unsubscribe from this group, send email to nodejs+un...@googlegroups.com javascript: For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
[nodejs] Re: Node and Nginx
When you set up your server, you tell it what to listen to. You can choose a socket or a port: server.listen('/tmp/echo.sock', function() {}) http://nodejs.org/api/net.html#net_net_createserver_options_connectionlistener On Sunday, September 9, 2012 5:33:23 PM UTC-7, Gerald Klein wrote: Hi, I have recently started working node and I set up an example of nginx running in front and passing off to node via a proxy as such: I found it to be slower then just node, I set up node using the cluster module and I have 4 cores. The only thing I think would improve right away is changing the url reference to a socket. How would I code node do use a socket for it's part? thanks for any help location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:3000/; proxy_redirect off; } --jerry -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
Re: [nodejs] Re: actionHero Version 3: Websockets and more!
Thanks Jeff- The main goal of the project can be said to create an api (not website) framework which is appropriate for many types of clients (tcp, http, etc). While able to server up static sites/assets, the main focus is on the API layer. To help make this easier, the framework has cluster features and delayed-processing features added in. I think that you are correct, and my use of the word 'polygon' might be confusing. I meant it to mean 'able to work with many languages/syntaxes' not that it can run other languages. This is a node.js/javascript API. Thanks again! On Friday, August 3, 2012 at 11:29 AM, Jeff Barczewski wrote: Evan, Could you explain more simply what the goals of your project is? I read the description: actionHero is a node.js API framework for both tcp sockets, web sockets, and http clients. The goals of actionHero are to create an easy-to-use toolkit for making reusable, scalable, and polygot APIs. actionHero provides cluster support, shared cache, integrated delayed processing, and more. So for someone unfamiliar with your project, does this project try to make it easier to deal with tcp sockets, web sockets, and http clients in a consistent way? Is that the main emphasis for the project (create actions that can be executed from any of these delivery mechanisms)? I do understand you are bundling in delayed processing, shared cache (from Redis), so since those are bundled in, one doesn't have to figure out how to integrate manually especially for dealing with a cluster. Traditionally I have seen 'polyglot' referring to different languages for example a project using JS, C, java, for different parts of the application, however for your project, it appears to only support JS currently. Does the polyglot API's reference simply refer to the ability to listen via tcp sockets, web sockets, and HTTP? Thanks in advance for any clarification. I just wanted to make sure I understood what the project is focussed on. All the best, Jeff -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com (mailto:nodejs@googlegroups.com) To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com (mailto:nodejs+unsubscr...@googlegroups.com) For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
[nodejs] actionHero Version 3: Websockets and more!
Hello Node.js Community - I want to announce the release of actionHero version 3. This release adds web socket support as a first-class protocol (via socket.io) as well as improvements to the task system. actionHero is an API framework which makes is possible to serve up http(s), webcocket, and direct TCP clients. It features clustering and message passing (based on redis), 'chat room' logic, and a built-in delayed-job processing engine. Check it out here [[ http://actionherojs.com/ ]]. I always welcome feedback! -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
[nodejs] Re: Is anyone sending Apple push notifications (APNS) with node to iOS devices (iPhone/iPad)?
Yep, node-apn is working for me as well. It's a bit of a bother to get the keys setup right, but I found this guide on the push ecosystem enlightening http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12 On Monday, June 25, 2012 6:02:02 PM UTC-7, Ric wrote: Hello mates! Just trying to make a game similar in architecture to Draw Something using node for the backend. Does anyone have experience sending push notifications using node? It seems there is an open source library: https://github.com/argon/node-apn And the hard way: http://bravenewmethod.wordpress.com/2010/12/09/apple-push-notifications-with-node-js/ Did anyone use that library? What do you think about it? How do you send push notifications to Apple servers using node? Any suggestion, feedback, idea is welcome. Thanks in advance. -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
Re: [nodejs] - Github Followers Thread
Sure, why not! https://github.com/evantahler https://github.com/evantahler/actionHero On Friday, May 27, 2011 7:02:03 PM UTC-7, Marak Squires wrote: Hello Internet Friends - It's been a while since we did one of these so I thought I'd try it out. Rules are simple: Post your Github Handle and I will follow it. Feel free to follow other people's Github handles as you please. Mine is: http://github.com/marak Let's go! -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
[nodejs] Re: TCP and HTTP server together?
Applications like this are why I built http://actionherojs.com/ Let me know what you think! On Tuesday, May 1, 2012 9:05:58 PM UTC-7, ss9 wrote: I have a unique app I need to build: 1. Gets a request from a browser 2. Passes a call to a TCP server which sends a UUID to a 3rd party 3. TCP server listens for streams from the 3rd party. 4. TCP server filters the stream to send the UUID messages back to the HTTP server 5. HTTP server does something with the message. I've had a few thoughts so far which include two different node servers, one tcp and one http... or one server that does both, maybe spawns child processes for the tcp part? Any thoughts on the best way to go about this? -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
[nodejs] Re: Your thoughts wanted on a node AI project
That's great! I am reminded of this blog [[ http://www.briangrinstead.com ]] which also has some neat AI algorithms written in JS. He wrote them for the browser, but I can tell you his A* implementation [[ http://www.briangrinstead.com/blog/astar-search-algorithm-in-javascript ]] works great in node :D On Monday, April 23, 2012 10:50:25 AM UTC-7, denniskane wrote: The site is powered by an express server, which exec's a separate node AI process for each new IP address. Each process will automatically end after 10 minutes of inactivity. You can interface with the process either through a browser at ai.webcyte.net or by sending a URL encoded GET request to http://ai.webcyte.net/send. So, the comand line for the phrase, there is a boy named joe using curl will look like: $ curl http://ai.webcyte.net/send/there%20is%20a%20boy%20named%20joe Detailed instructions can be found at ai.webcyte.net. This project is currently meant to be a prototype in order to build interest in developing a robust AI system that just works (read: NOT another chatterbot!). It can possibly be used as the intelligent backend to a Siri-like voice interface in the not too distant future. I am interested in getting in touch with academic/research types as well as business types. Will probably want to develop an open source version for non-business purposes that can be used on the client side (eventually) and keep the supported commercial version well hidden from prying eyes on the server side. Thoughts? -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
[nodejs] Re: Node.js Clustering and interprocess communication
This is a very similar problem to what I've been fighting as well (also for a game). Personally, I didn't feel any of the packages I had found met my needs, so I created this: http://actionherojs.com/. I'm working on support for both pure-node distributed data and for a common task queue. It's still pre V1, but I am always happy to have feedback. On Friday, March 9, 2012 8:54:44 AM UTC-6, Murat T. wrote: Hi, I have been developing a game since last month and there are a couple of things which bothers me. I am using socket.io, and storing all the data into redis. However, most of my data is temporary and doesn't need to go into redis. If in case I restart the node, those temporary information in redis must be deleted anyway. The reason I am storing in redis is that I want to make sure it can scale in the future. Current design allows that. However, I have been doing some small benchmarks and noticed that I won't need to scale node to multiple machines. If I can have 8/16 cores in one server, and fork workers using clustering mechanism, everything should be more than enough. So, I want to eliminate redis and store everything in javascript objects, which is fine for me, since I don't need to save any state. (I have somethings to save and will still use redis for those cases, but for most cases I don't need it) The main reason is that I read and write a lot of small data and I need to write lots of code to do that, which I don't need if only I can use simple javascript objects. If I eliminate redis, I will have some objects which may have more than 100.000 elements. I have been testing the performance of interprocess communication, and it takes almost a second to send large objects between children. (If I am not doing something wrong) So, is there any way to simplify the app or improve this performance? Do I have to use a key value store for sharing large objects across other nodes. I just want to have a couple of objects, read and write a lot of data and share between processes. Thanks in advance, -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
[nodejs] Re: node.js + socket.IO sending tcp/ip messages
Ahh! I would suggest you think about the flow of your application this way which might clear things up: - User on website loads a page, something like /changeImage.html?newImage=picture1.jpg - nodejs server receives request for /changeImage.html and parses the GET string to find the var newImage = picture1.jpg - Before returning to the user (rendering the HTML response for changeImage.html), your server (not your html) runs a method to pass the TCP command to your sign ( sendSignMessage({image = picture1.jpg}, callback) ). sendSignMessage would connect to the digital sign (or make use of a previously initialized connection) per [[ http://nodejs.org/api/net.html#net_net_connect_arguments ]] - sendSignMessage() waits until it receives a response from the sign and passes that message on to the callback passed to it, which in turn should finally render out (with that response included) to the user on the website. There are a few reasons for this type of architecture: - While I haven't done much work with digital signs, I have interfaced with a lot of lighting control hardware, and those devices have trouble dealing with lots of connections. Having your server maintain one connection which is a proxy for all of your web users is useful - It's really hard (and often times impossible) to get javascript in the browser to connect to arbitrary ports - It's also really hard (even with websocckets) to have javascript in the browser act as a raw TCP connection to send arbitrary messages to a server that isn't the same as the webserver (cross domain problems) On Thursday, March 8, 2012 1:16:07 AM UTC-8, tomfish wrote: Yes I thought that Socket.IO would be a little overkill. I now know I need to use regular sockets. But I can't seem to get this working. I believe I need to make an html file that sends commands to my tcp server? There is now way I can make my index.html interact with my server. Kind regards, Tom On 8 mrt, 08:11, Evan evantah...@gmail.com wrote: Socket.io while awesome, might be a little overkill here. It sounds like you just need to connect to a port on a remote machine and sent some commands. You can start up your connection like this [[http://nodejs.org/api/net.html#net_net_connect_arguments]] and then use the client.write() method to send your string to the remote server. On Wednesday, March 7, 2012 5:54:43 AM UTC-8, tomfish wrote: Hello, I would like to send a command from a (local) website to a computer in the same network on a specific port. This port is in use by digital signage software. When the software receives this command, it changes the image. Can anyone help me with this? node.js and socket.IO are already installed, but I can't seem to find the right coding. Thanks in advance, Tom -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
[nodejs] Re: node.js + socket.IO sending tcp/ip messages
Socket.io while awesome, might be a little overkill here. It sounds like you just need to connect to a port on a remote machine and sent some commands. You can start up your connection like this [[ http://nodejs.org/api/net.html#net_net_connect_arguments ]] and then use the client.write() method to send your string to the remote server. On Wednesday, March 7, 2012 5:54:43 AM UTC-8, tomfish wrote: Hello, I would like to send a command from a (local) website to a computer in the same network on a specific port. This port is in use by digital signage software. When the software receives this command, it changes the image. Can anyone help me with this? node.js and socket.IO are already installed, but I can't seem to find the right coding. Thanks in advance, Tom -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
[nodejs] actionHero: API Framework for HTTP and direct TCP clients
Hi node.js community: I have been working on the actionHero API [[ http://actionherojs.com/ ]] and [[ npm install actionhero ]] , which is an API framework which allows clients to connect either via HTTP or direct TCP. It features reusable actions which will handle client requests from both types of connections. The framework also has: - chat-room style messaging - internal tasks (single or multi node scope) - internal cache (query-able between nodes) - cluster-aware message passing - flat-file server I created the API to use in the development of game servers (where clients of both HTTP and TCP will be playing), but I'll bet there are a number of other use cases out there. I would love to hear your feedback. Thanks! -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups nodejs group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en