Closed formula1 closed 8 years ago
I am surprised how similar Happy Fun Times is to Silk. It has a cool idea.
Opening browser
When on platforms other than NodeOS, I have thought of using open.
Installer
NodeOS users will probably know how to install an application from the command line. I doubt there will be many people using Silk on Windows or Mac, but if there ever is an installer might be a good idea.
This is pretty awesome from the context of "the internet of things". This can be applied to lights in your house, tv remotes and anything that you can create a server with and want to control it with your phone.
That has a lot of potential. Apps have enough freedom they could do this themselves. Should Silk do anything to help apps with this? I am going to make some changes to remote to work with apps that use a different port. I also will add methods to the server api so apps can control remote.
I'm still paying attention to this project. And Want to get back into it, but I also want to make sure we have a stun server that isn't google.
Great! I have learned a lot from you.
open
That is an excellent library
The installer
I agree, its probably not necessary. But its food for thought to say the least
Internet of things
I 100% agree with you that this should and can be done on an app level. To make it easier, there is this script to find on wifi. Finding on bluetooth may be more complicated but still possible via (https://github.com/eelcocramer/node-bluetooth-serial-port)
Something related though completely seperate
I don't know if you know this or not but processes can send sockets and servers to eachother. This can be done over child process and thanks to @VanCoding between completely unrelated processes. The second one I have no idea what to use it for but I think its really cool. It could be used as a load balancer or better allow apps to connect to silk without silk having to start it. This may result in confilcts though and/or dangerous applications, but its available.
What this allows us to do is give all of our apps the sockets that are directed to them.
url.parse(ws.originalReq.url).path
apps[path.split("/")[0]]
apps[path].fork.send("websocket", socket)
This would be good for a few reasons
WebSockets are actually just tcp sockets, however ws
creates a wrapper around it to make it easier to use. Unfortunately, we cannot send Objects, only sockets. I ran into a lot of frustration trying to make sure the websockets can be exported and imported, which in part relates to me being inactive temporarilly until I could get that togethor. We can also bypass ws in some ways by creating a tcp server that we then manually call server.handleUpgrade to construct the ws.WebSocket within each child process. But that then requires every child process to require ws
which may not be the best idea.
Trust me when I say I'm still actively thinking about Silk. Theres just a lot of code I've written that will never see the light of day : /. I just need a break from IO for a bit. I've been trying to translate code from one language to another, getting deep into other peoples code to see what I can do to scrap parts and learning new programming environments and its definitely tiring.
Thanks for letting me know you've learned from me. I'm certianly not @netlovers or @piranna but its cool I can share whatever tricks I can with you :)
I agree the web socket should be sent to the app. Methods could remain in the app, and there could be public methods any app could call (such as app defaults).
In the dev branch I am trying sockjs. Web sockets didn't work with localtunnel and sockjs is able to emulate them. The connection instance it says supports Node Stream API, so I don't know if that means it is a stream or has a similar api. It has a property for the url and pathname.
Here are possible issues
Wasn't a fan of my tunnel implementation? ;)
By the way, sockjs seems awesome. this is its dependency. And that's dependency is even better!
its api allows for the socket to still be a seperate aspect. This will allow the socket to be passed to child processes without (much) issue! There may be conflicts with handshaking, so it most likely cannot be created more than once. However, the request is an http request allowing us to see, parse and direct the request to the right location without creating it. Ah, give me some time and I'll get back into this. I'm getting all excited
Thank you for pointing those issues out. I will try to fix them.
Wasn't a fan of my tunnel implementation? ;)
I plan to use it. I am not using it yet because it needs to be on a server. Would it work on a free dynamo on Heroku?
It should work on heroku. Though It seems that with heroku you pay by hour unless I'm mistaken. That will most likely end up at about $30 a month. If your looking for free, sockjs probably has your back on that.
Heroku gives one dyno for free. https://www.heroku.com/pricing.
Microsoft azure gives 10 websites and 5 gb bandwith for free.
I will keep localtunnel for now, but once Silk gets some users I will switch to your tunnel. Something like remote.silk.io would be better than subdomain.localtunnel.me and the password protection in your tunnel will be nice.
In the dev branch, you can now open a nw.js window with the --open flag
. Added in 616a7df60b5b985d0edcefbe6c08a0ab239059b3
oooooo Thats sweet!
https://github.com/greggman/HappyFunTimes
This framework and ours are very similar
Some things he did well
Some issues with his framework
Some Differences
PS: I'm still paying attention to this project. And Want to get back into it, but I also want to make sure we have a stun server that isn't google.