【发布时间】:2015-09-09 09:50:56
【问题描述】:
我在我的 AngularJS 应用程序中使用网络套接字。
当用户注销时,客户端将关闭 Web 套接字连接。
当用户重新登录时,我需要重新连接网络套接字。
Web 套接字包含在服务中(代码简化了一点):
angular.module('myApp').factory("SubscriptionFactory", function () {
var Service = {};
var ws = new WebSocket("ws://127.0.0.1:8000");
/* WS methods (onopen, onmessage ect) left out for simplicity */
Service.reestablishConnection = function() {
// Reestablishing connection
ws = new WebSocket("ws://127.0.0.1:8000");
}
return Service;
问题是网络套接字的新实例不起作用。
根据this question,Web 套接字在重新创建时需要将其处理程序重新附加到对象。
但是 AngularJS 服务是单例的(根据this question 应该保持单例)。
如何在 AngularJS 单例服务中重新创建 Web 套接字实例?
【问题讨论】:
标签: javascript angularjs sockets service websocket