【问题标题】:Adding Socket Io Into Angular 2将套接字 Io 添加到 Angular 2
【发布时间】:2016-07-31 22:43:00
【问题描述】:

好的,所以我在尝试弄清楚如何将 Socket.io 添加到 Angular 2 应用程序时运气最差。

我正在使用这个angular 2 expresss starter。从我看到的方式来看,我想在 typings.json

中添加这个 socket.io 依赖项
{
  "globalDependencies": {
    "body-parser": "registry:dt/body-parser#0.0.0+20160619023215",
    "core-js": "registry:dt/core-js#0.0.0+20160602141332",
    "express": "registry:dt/express#4.0.0+20160708185218",
    "express-serve-static-core": "registry:dt/express-serve-static-core#4.0.0+20160715232503",
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
    "mime": "registry:dt/mime#0.0.0+20160316155526",
    "node": "registry:dt/node#6.0.0+20160720070758",
    "serve-favicon": "registry:dt/serve-favicon#0.0.0+20160316155526",
    "serve-static": "registry:dt/serve-static#0.0.0+20160606155157"
  },
  "dependencies": {
    "jsonwebtoken": "registry:npm/jsonwebtoken#5.5.4+20160208220328"
  }
}

他们从哪里获得这些值?示例:“registry:dt/express#4.0.0+20160708185218”

另一件事是导入部分。

import * as express from "express";
import { join } from "path";
import * as favicon from "serve-favicon";
import { json, urlencoded } from "body-parser";

看惯了

var express = require('express');
var socket_io = require('socket.io');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

那么这样对吗?

import * as socket_io from "socket.io";

【问题讨论】:

    标签: angular socket.io


    【解决方案1】:

    DT = 绝对类型。它是一个 d.ts(TypeScript 定义)文件库。在此处查看更多信息:https://github.com/DefinitelyTyped/DefinitelyTyped

    typings.json 将 TypeScript 定义添加到项目中,用于导入非 TypeScript 原生编写的包(例如 jQuery 等 JavaScript 包)。

    Typings 包可以在这里找到:https://www.npmjs.com/package/typings

    如果您已全局安装“typings”包,您将能够通过在命令行中使用“typings search packagename”来搜索 TypeScript 定义。记下来源,这会告诉您 d.ts 文件所在的位置。在 socket.io-client 的情况下,它在 DT 上。因此,要安装它,您需要使用以下命令:

    typings install dt~socket.io-mocha --global --save

    这将添加对您的 typings.json 文件的引用,然后下载 d.ts

    要在项目中实际使用包,您需要将其添加到 package.json 文件中的 devDependencies。然后,您需要在项目根目录中运行命令 NPM install。在此之后,您将能够将对象导入到您的项目中。

    如果您想导入特定的类/对象/等,您可以使用: import { object_name_here } from 'package_name_here';

    如果你想导入所有东西,你可以使用这样的东西:

    import * as alias_name_here from 'package_name_here';

    ...然后alias_name.ojbect_name 以获取对您要使用的位的引用

    所以在你的情况下,你可以这样做:

    import * as sioc from 'socket.io-client';
    let socket = sioc('serveraddress');
    etc, etc...
    

    【讨论】:

    • 对不起,我还是有点卡住 T.T 我仍然无法在 typings.json 中添加 socket.io。我输入了“typings search socket.io”并得到了一个源主页列表。我接下来应该做什么?
    • 我想写一些 cli 来在 json 文件中添加我的套接字注册表吗?
    • 更新了我的答案。搜索后,需要安装。这会将其添加到您的类型文件中,并下载相关的 d.ts。往上看。希望这会有所帮助
    猜你喜欢
    • 2021-03-22
    • 2018-08-22
    • 2017-10-14
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多