That is partially correct. I am not creating a new socket each time it
is called - only one is every made during the lifetime of the
application. The check to see if the socket is open is really only
there in the event that the user starts sending events before the
connection has been established, but then I simply continue checking
thereafter. If you wanted to do anything when the socket is closed you
would do so in that service. You could also add a method to the
returned interface allowing a user to close the socket; in my case, the
user has to navigate away in order to close their connection.
There is some code in there that keeps track of whether the socket is
open before I switched to using socket.onopen() directly, which I should
remove for clarity. Hope this helps!
- Sonny
On 02/06/2014 01:56 AM, Yonatan Kra wrote:
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 <[email protected]
<mailto:[email protected]>> 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,
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 <http://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
--
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 [email protected]
<mailto:angular%[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
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 [email protected]
<mailto:angular%[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/groups/opt_out.