Ich bin wie so socket.io in meiner Anwendung laden:Injizieren Fensterobjekt in eine Komponente in Angular mit DI
index.html
<script src="http://myapp.com/socket.io/socket.io.js"></script>
...
// Angular stuff
Ich habe eine Komponente namens Socket
die window.io
arbeiten erfordert.
Theoretisch kann es funktionieren (nicht getestet), aber es ist keine gute Praxis, Zeug aus dem Fensterbereich in Klassen zu injizieren.
Gibt es eine Möglichkeit, es so zu tun:
import { SocketIODriver } from 'socket.io';
import { Socket } from 'App/Socket/Socket';
@Component({
templateUrl: 'layout.html'
})
export class ConferenceApp {
constructor(
public io: io,
public Socket: Socket
) {
this.socket = new Socket(new SocketIODriver());
}
}
Danke.
Ps. IIRC, socket.io muss vom Server geladen werden, deshalb lade ich es von meinem Server. Wenn es in meinen JS-Ordner gelegt werden kann, wäre das noch besser.