angular2中的WebSockets

Posted

技术标签:

【中文标题】angular2中的WebSockets【英文标题】:WebSockets in angular2 【发布时间】:2016-04-23 15:05:08 【问题描述】:

我想将 WebSocket 客户端集成到我的 angular2 应用程序中。

我首先尝试使用 sock.js https://github.com/sockjs/sockjs-client 来做到这一点 并像这样创建了一个 SockJS 对象:

export class Core 

  private sock: any;

  constructor (private router: Router) 

    this.sock = new SockJS(AppSettings.WEBSOCK_ENDPOINT);

  


我的问题是 angular2 无法识别 SockJS 类型。

然后我尝试在我的项目中使用https://github.com/retyped/sockjs-client-tsd-ambient/blob/master/sockjs-client.d.ts 提供的类型定义,但无法真正弄清楚在哪里以及如何设置类型。

或者我尝试使用 angular2-websocket npm 包https://github.com/afrad/angular2-websocket,但是当我在我的应用程序中这样做时:

import $WebSocket from 'angular2-websocket/angular2-websocket'
var ws = new $WebSocket("url");

我的 IDE (Jetbrains WebStorm) 告诉我 $WebSocket 至少需要 2 个参数。

由于目前关于 angular2 中的 WebSocket 的信息很少,我决定询问是否有人可以向我解释在 angular2 项目中设置 WebSocket 的好方法。

我使用 angular2 + webpack 并在这个样板 https://github.com/angular/angular2-seed 上构建了我的项目

【问题讨论】:

【参考方案1】:

如您所见

https://github.com/afrad/angular2-websocket/blob/master/src/angular2-websocket.ts

其他参数可选

constructor(private url:string, private protocols?:Array<string>, private config?: WebSocketConfig  ) 

你可能也喜欢它有工作套接字角度示例(使用 socket.io)

https://github.com/leonardohjines/auctionApp

【讨论】:

谢谢,我认为我的 IDE 在 ES6 功能方面存在一些问题,这就是显示错误的原因。【参考方案2】:

我也可以为 angular2 中的 websockets 推荐这个实现: https://github.com/Sinthor/WSM

【讨论】:

以上是关于angular2中的WebSockets的主要内容,如果未能解决你的问题,请参考以下文章

$$hashKey 用于 angular2 中的对象?

如何验证 angular2 中的 FormArray 长度

angular2中的WebSockets

Angular2:表格中的诊断属性是啥

如何在Angular2中的组件之间共享数据[重复]

动画Angular2中的参数