Never-ending animated GIFs as a chat system
npm install gifsockets-server
GIFSockets are never-ending animated [GIFs][GIF] for sending text and images between people.
Demo: http://gifsockets.twolfson.com/
gifsockets-server is a reimplementation of [videlalvaro/gifsockets][]. It was written in [Clojure][] and not trivial to set up, especially without any [Clojure][] experience.
This project is written in [JavaScript][] and use [gif-encoder][] for encoding and [PhantomJS][] for [canvas][] preparation.
[videlalvaro/gifsockets]: https://github.com/videlalvaro/gifsockets
[Clojure]: http://en.wikipedia.org/wiki/Clojure
[GIF]: http://en.wikipedia.org/wiki/Graphics_Interchange_Format
[JavaScript]: http://en.wikipedia.org/wiki/ECMAScript
[gif-encoder]: https://github.com/twolfson/gif-encoder
[gif.js]: http://jnordberg.github.io/gif.js/
[PhantomJS]: http://phantomjs.org/
[canvas]: https://developer.mozilla.org/en-US/docs/HTML/Canvas
To run this website locally:
``bash`
npm install -g gifsockets-server phantomjs-pixel-server
phantomjs-pixel-server &
gifsockets-serverWebsite will be available at http://localhost:8000/
[Node Knockout 2013]: http://2013.nodeknockout.com/
The server you are running is at server/app.js and the gif logic is inside of lib.
Modules which are part of this project include:
- [gifsockets][] The heart of the gifsockets project, a mediator for subscribing any writable stream to newly written [GIF][] framesgifsockets-middleware
- [][] Plug and play middlewares to set up a server with gifsocketsgif-encoder
- [][] A fork of [gif.js][] with stream support and is optimized for [node.js][] performancephantomjs-pixel-server
- [][] A [PhantomJS][] server which takes text and converts it to an rgba array of pixels
[node.js]: http://nodejs.org/
[gifsockets]: https://github.com/twolfson/gifsocketsgifsockets-middleware
[]: https://github.com/twolfson/gifsockets-middlewaregif-encoder
[]: https://github.com/twolfson/gif-encoderphantomjs-pixel-server
[]: https://github.com/twolfson/phantomjs-pixel-server
`bash
npm installnpm http GET https://registry.npmjs.org/marked
npm http GET https://registry.npmjs.org/express
...
grunt install
If you never used [grunt][] before, install the [CLI tool][grunt-cli] via
`bash
npm install -g grunt-cli
`[npm]: https://npmjs.org/
[grunt]: http://gruntjs.com/
[grunt-cli]: https://github.com/gruntjs/grunt-cli
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint via grunt and test via npm test`.[![Support via Gittip][gittip-badge]][gittip]
[gittip-badge]: https://rawgithub.com/twolfson/gittip-badge/master/dist/gittip.png
[gittip]: https://www.gittip.com/twolfson/
It has been released under the [UNLICENSE][].
[UNLICENSE]: UNLICENSE