Angular2 + Socket.IO实施最佳实践

时间:2016-06-26 23:12:22

标签: angular socket.io angular2-services

目前我有一个单例(static-ish?)服务初始化套接字,并设置事件。然后将服务注入到使用套接字信息的每个组件中。

我的问题是:

  • 这听起来像是最佳做法吗?

  • 你能预见并发表问题吗?

  • 您可能会做出哪些更改?

1 个答案:

答案 0 :(得分:0)

我只是在角度1.5.x中开发,所以我不确定我的答案是否适用,但也许你可以从中获取设计原理,并正确应用它,但是这里有。

我最初的想法就是如何做到这一点。我设置了一个套接字服务来处理初始化套接字之类的东西,并且还有两个公共函数来绑定一个事件,并取消绑定一个事件。绑定将采用事件名称和具有数据参数的函数,并且可能返回ID以稍后解除绑定事件,如下所示:

var bindingId = SocketService.bind('socketEventName', function(eventData){
    console.log(eventData);
});

然后取消绑定你可以这样做

SocketService.unbind(bindingId);

使用这种布局,意味着您可以在其他服务中包含SocketService,并让其他服务根据需要处理响应,而不是在SocketService中使用所有逻辑。