2016-08-06 16 views
7

Ich versuche, die socket.io Client in meinem Winkel 2 App zu nutzen und installiert es und Typisierungensocket.io-Client in Angular 2 app

ich den Import nur von 'socket.io-client' ;

aber irgendwie bekomme ich Tonnen von Fehlern aus, dass:

enter image description here

ich die lib in meiner index.html verwenden kann, wenn ich das Skript von einem CDN laden und einfach den Init-Code in einem <script> Tag, aber ich kann es nicht in meiner eigentlichen eckigen 2 App verwenden.

Was mache ich hier falsch?

Das ist mein vorformulierten: https://github.com/mgechev/angular2-seed

Die Beispiele für socket.io veraltet scheinen, weshalb ich sie vermieden.

das ist alles, was ich tue, und schon diese Fehler bekommen:

import * as io from 'socket.io-client'; 
[...] 
var socket = io('127.0.0.1'); 

So das Problem scheint SystemJS in someway zusammenzuhängen. Diese https://github.com/mgechev/angular2-seed/wiki/Add-external-dependency schlägt vor, dass ich den socket.io-Client hinzufügen kann, und es sollte alle Abhängigkeiten automatisch hinzufügen, das scheint jedoch nicht der Fall.

Ich habe das ganze Beispiel versucht, aber das wird auch nicht funktionieren.

+0

Es sieht zu mir wie Sie sollten socket.io.js verwenden, die speziell für den Browser ist. – jfriend00

+0

Ich benutze socket.io-client, die für angular 2 an mehreren Stellen empfohlen wurde – gempir

+0

setzen Sie einen Code auf, wie Sie versuchen, es zu importieren? – Ajey

Antwort

2

Ich benutze socket.io Client in meiner eckigen 2-Anwendung, und habe keine Probleme damit. Zuallererst sollten Sie nicht script Tag zu socket.io-Client in Ihrem index.hml setzen. Zweitens müssen Sie diese Zeilen in Ihrer system.js Konfiguration:

{ 
    packages: { 
     "socket.io-client": {"defaultExtension": "js"} 
    }, 

    map: { 
    "socket.io-client": "node_modules/socket.io-client/socket.io.js" 
    } 
} 

Dann einfach Sie es verwenden:

import * as io from "socket.io-client"; 
io.connect(url, { /* ... */ }); 
+0

Ich habe etwas ähnliches zuvor versucht, aber ich bin nur unsicher, wie man es macht Arbeit. Hier ist meine Konfigurationsdatei aus dem Seed-Projekt (https://github.com/gempir/spamchamp/blob/master/tools/config/seed.config.ts), ich habe versucht, die mehreren vorgeschlagenen Orte hinzuzufügen, aber das tat es nicht Arbeit. – gempir

+0

fügen Sie einfach diese Zeilen zu den Paket - und Kartenabschnitten hinzu und Sie werden es funktionieren – pleerock

+0

Ich tat, aber ich habe immer noch das gleiche Problem:/ – gempir

0

basierend auf this, die in question erwähnt wurde, sollten Sie npm install @types/socket.io-client --save verwenden

+0

Dies wurde vor 4 Monaten mit einer besseren Antwort beantwortet. – George

+0

@George geben, dass Github Link, die ich zur Verfügung gestellt habe, gab diese Antwort in Bezug auf ein Problem mit der akzeptierten Antwort, ich glaube nicht, dass die angenommene Antwort besser ist. –