I have done something very similar, but using SockJS instead of Socket.IO. They have very similar interfaces, and, having used both, I have come to prefer the former.
Your state will be persistent in the service, so switching view should not cause problems. You can see my implementation here if you are interested:
https://github.com/sonnym/fics_web_interface/blob/master/app/assets/js/services/proxy.js
This service handles the communication between itself and the server when first run, then returns an object that allows other services (or controllers) to send messages or register handlers for messages that will then be dispatched upon arrival. One important thing to note is that the dispatch occurs in a $rootScope.$apply() call to ensure that the changes propagate through the application.
- Sonny
On 02/05/2014 05:04 PM, Yonatan Kra wrote:
Hi,You received this message because you are subscribed to the Google Groups "AngularJS" group.
I'm pretty new to Angular (about 2 weeks of trial and error) and it looks amazing so far.
I think I'm now ready to dive into complex integration with socket.io.
I've created a service that creates a port listener (something very simple).
I have 2 questions about it:
1) The service needs to be called by a controller. When I switch view, it means I switch a controller. Does that mean each time I switch view (i.e. click a menu item), I destroy the listener and create a new one? I believe it's a more basic question - what happens to the controller once I switch view - is it destroyed?
2) How would you suggest keeping the connection to the server across views? I want to call it once, and it would be active as long as the user is in the app.
Thanks
--
To unsubscribe from this group and stop receiving emails from it, send an email to angular+unsubscribe@googlegroups.com.
To post to this group, send email to ang...@googlegroups.com.
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to a topic in the Google Groups "AngularJS" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/angular/LZo3-S5uOeQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to angular+unsubscribe@googlegroups.com.
Hi,Thanks for your answer and example.If I understand your code correctly, what you are doing is to load the socket service in a controller and every time check if it was activated before.If it was, call the callback. If it wasn't, open a new socket with the callback.Is that it? And there's no need to worry about "destroy" and such stuff here?Thanks again
On Thu, Feb 6, 2014 at 1:17 AM, Sonny Michaud <michau...@gmail.com> wrote:
I have done something very similar, but using SockJS instead of Socket.IO. They have very similar interfaces, and, having used both, I have come to prefer the former.
Your state will be persistent in the service, so switching view should not cause problems. You can see my implementation here if you are interested:
https://github.com/sonnym/fics_web_interface/blob/master/app/assets/js/services/proxy.js
This service handles the communication between itself and the server when first run, then returns an object that allows other services (or controllers) to send messages or register handlers for messages that will then be dispatched upon arrival. One important thing to note is that the dispatch occurs in a $rootScope.$apply() call to ensure that the changes propagate through the application.
- Sonny
On 02/05/2014 05:04 PM, Yonatan Kra wrote:
Hi,You received this message because you are subscribed to the Google Groups "AngularJS" group.
I'm pretty new to Angular (about 2 weeks of trial and error) and it looks amazing so far.
I think I'm now ready to dive into complex integration with socket.io.
I've created a service that creates a port listener (something very simple).
I have 2 questions about it:
1) The service needs to be called by a controller. When I switch view, it means I switch a controller. Does that mean each time I switch view (i.e. click a menu item), I destroy the listener and create a new one? I believe it's a more basic question - what happens to the controller once I switch view - is it destroyed?
2) How would you suggest keeping the connection to the server across views? I want to call it once, and it would be active as long as the user is in the app.
Thanks
--
To unsubscribe from this group and stop receiving emails from it, send an email to angular+u...@googlegroups.com.
To post to this group, send email to ang...@googlegroups.com.
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to a topic in the Google Groups "AngularJS" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/angular/LZo3-S5uOeQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to angular+u...@googlegroups.com.
To post to this group, send email to ang...@googlegroups.com.
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to angular+u...@googlegroups.com.
Helps a lot. Thanks