tying it all together in real time - connect.js / ti.connect

39
Tying it all together in real time

Upload: joshcjensen

Post on 14-Jun-2015

426 views

Category:

Technology


1 download

DESCRIPTION

How to get your server (Node.js), mobile (Appcelerator Titanium), website, and IoT (Tessel) device all talking to one another in realtime using PubNub.

TRANSCRIPT

  • 1. Tying it all together in real time

2. Reloading the page 3. Set IntervalsetInterval(function(){$.ajax({ url: "http://myserver.com", success:function(data){//Update your dashboard or chat}, dataType: "json"});}, 10000); 4. There must be abetter way 5. http://www.quora.com/What-are-alternatives-to-pusher-com 6. 7. //Subscribe to the demo_tutorial channelPUBNUB_demo.subscribe({channel: 'demo_tutorial',message: function(m){console.log(m)}}); 8. // Publish a simple message to the demo_tutorial channelPUBNUB_demo.publish({channel: 'demo_tutorial',message: {"text":"Hey!"}}); 9. Demo 10. GITSNITCH$ npm install -g gitsnitch$ cd ~/aGitProjectFolder$ snitch 11. GITSNITCHgaze(config.paths, function(err, watcher) {this.on('all', throttleOnEvent);}); 12. GITSNITCHpubnub.publish({channel: CHANNEL_NAME,message: message,callback: function(e) { log.debug( 'SUCCESS!', e ); },error: function(e) { log.error( 'FAILED! RETRY PUBLISH!', e ); }}); 13. GITSNITCHIdeal messagesare less than 1.8kbKeep your datasmall 14. GITSNITCHvar changedFiles = ['file 1','file 2','file 3','file 4','file 5','file 6','file 7','file 8','file 9','file 10']pubnub.publish({channel: 'channel_name',message: changedFiles});var changedFiles = ['file 1','file 2','file 3','file 4','file 5','file 6','file 7','file 8','file 9','file 10']for (var i = 0; i < changedFiles.length; i++) {pubnub.publish({channel: 'channel_name',message: changedFiles[i]});};72 bitseach18 bitseach 15. GITSNITCH{"gitHash": "working","fileHash": "5aeb0d692ec5838c542e3c1cacd77086","filePath": "app/controllers/changedSection.js","status": "modified","updated": true,"dev": "Joshua Jensen","labeltype": "primary","uuid": "5aeb0d692ec5838c542e3c1cacd77086workingjoshua-jensen"} 16. GITSNITCHLorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut vehicula dolor. Quisque scelerisque etmi id ultrices. Donec pharetra nibh eu purus facilisis, sed tristique nibh tempus. Aliquam a congue nulla.Phasellus maximus metus eu odio pharetra, eget bibendum ipsum suscipit. Curabitur sapien nisi,sollicitudin a laoreet sed, cursus venenatis ipsum. Donec et ex enim. Maecenas a faucibus est. Etiamrutrum bibendum magna, id vestibulum leo dictum a. In suscipit commodo augue eu tristique. Donec a felisvel nisi viverra consequat. Pellentesque egestas eget dolor at varius. Praesent id magna metus. Interdumet malesuada fames ac ante ipsum primis in faucibus.Fusce a ultricies mauris. Aenean ac ultricies metus.Suspendisse ac sapien enim. Vivamus facilisis arcu ac nunc facilisis, et viverra elit viverra. Nulla at turpismolestie sem fringilla volutpat. Donec auctor, dolor eu ullamcorper congue, velit ligula tincidunt est, vitaeporttitor eros diam vitae massa. Morbi purus enim, aliquet eget ultricies sed, molestie dignissim diam.Mauris congue mollis leo, vitae vehicula metus dignissim sit amet. Duis tristique lacinia sapien, at temporelit cursus id. Curabitur faucibus, dolor sodales vestibulum dictum, quam ante hendrerit tellus, id maximuslibero urna ac nunc. In vulputate pellentesque lectus et tempus. Pellentesque gravida facilisis orci sit ametullamcorper. Phasellus dapibus tortor in iaculis condimentum. Praesent luctus id nisi non malesuada.Pellentesque in semper risus, et dapibus dui. Morbi eget ex tortor. Donec et nulla at magna suscipitvolutpat vitae eu erat. Morbi ut nisi eu leo ultrices ullamcorper vitae nec est. Quisque a arcu nunc. Etiampharetra ut nisl et semper. Praesent lorem nunc, condimentum vel vestibulum at, laoreet ac dui. Sedrhoncus at e. 17. GITSNITCHthis.on('all', throttleOnEvent);pubnub.publish({channel: config.projectKey + '-filestat',message: message,callback: function(e) { log.debug( 'SUCCESS!', e ); },error: function(e) { log.error( 'FAILED! RETRY PUBLISH!', e ); }}); 18. GITSNITCH 19. GITSNITCHpubnub.subscribe({channel: projectKey + '-filestat',message: onMessageFileStat});Subscribe 20. GITSNITCHpubnub.subscribe({channel: projectKey + '-filestat',message: onMessageFileStat,connect: function() {pubnub.publish({channel: projectKey + '-connections',message: "connection"});}}); 21. GITSNITCHNew DeviceonConnectfileChanges 22. GITSNITCHMultipleChannelsOneConnection$$$ 23. Questions?github.com/joshjensenapp.gitsnitch.com@joshj