使用“导入”将 Faye 客户端包含在 Ionic 2 项目中

Posted

技术标签:

【中文标题】使用“导入”将 Faye 客户端包含在 Ionic 2 项目中【英文标题】:Include Faye Client in a Ionic 2 project with 'import' 【发布时间】:2017-04-26 06:24:11 【问题描述】:

我想在 Ionic 2 项目中尝试 Faye,但我不明白如何将它添加到项目中。正如这里https://faye.jcoglan.com/download.html 所解释的那样,如果'require'可用,我会这样做:

var faye = require('faye');

如果我从我的网络服务器提供这个 javascript,我将只包含一个 Script 标记,指向 client.js,如下所示:

<script src='http://localhost:8000/faye/client.js'></script>

我在 Ionic 2 中试过这个

import  Faye  from 'faye';
//...
constructor(public navCtrl: NavController, platform: Platform, matchService: MatchService, faye : Faye)  //...

这段代码产生了这个错误:

Typescript 错误:找不到名称“Faye”

如何使用“导入”来实现,以便在此项目中使用 Faye 浏览器客户端?

【问题讨论】:

【参考方案1】:

通常您会在 npm @types 中查找类型声明,然后将软件包安装为 npm install @types/package_name. 但是这里好像没有添加faye包。

根据 IONIC 文档here

在将纯 JavaScript 模块添加到 Ionic 2 时,您必须在 declarations.d.ts 文件中包含声明。

【讨论】:

【参考方案2】:

如果你看看faye exports at it's github source:

  var Faye = 
    VERSION:      constants.VERSION,
    Client:       require('./protocol/client'),
    Scheduler:    require('./protocol/scheduler'),
    NodeAdapter:  require('./adapters/node_adapter')
  ;

  Logging.wrapper = Faye;
  module.exports = Faye;

因此,你可以这样做

import  VERSION, Client, Scheduler, NodeAdapter  from 'faye'

或者,您想通过Faye.Client 联系Client

import * as Faye from 'faye'

【讨论】:

以上是关于使用“导入”将 Faye 客户端包含在 Ionic 2 项目中的主要内容,如果未能解决你的问题,请参考以下文章

带有 scala 客户端的 ruby​​ faye 服务器

如何使用Faye Websockets向特定客户端发送消息?

如何使用 faye-websocket-ruby 向 websocket 客户端发送拒绝连接

Websockets 与主要应用程序(nginx + 乘客 + faye)

Ionic2 Typescript Twilio

ruby 中的安全 Websocket 客户端