Serverseite ist php laravel echo websocket und ich versuche, durch Angular 4 zu verbinden. Ich versuchte mit ng2-socket-io - npm und auch Laravel-Echo - npm aber keine von ihnen waren erfolgreich. Wenn jemand eine Dokumentation oder Anleitung weiß, wie ich es benutzen kann, bitte helfen SieWie man socket.io-client in angular verwendet 4
1
A
Antwort
3
Hallo @giga Arbeitsbeispiel wird unten angegeben.
serverseitige (NodeJS)
var express = require('express');
var path = require('path');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var port = 8000;
app.use(express.static(path.join(__dirname, "public")));
io.on('connection', (socket) => {
console.log('new connection made');
socket.on('event1', (data) => {
console.log(data.msg);
});
socket.emit('event2', {
msg: 'Server to client, do you read me? Over.'
});
socket.on('event3', (data) => {
console.log(data.msg);
socket.emit('event4', {
msg: 'Loud and clear :)'
});
});
});
server.listen(port,() => {
console.log("Listening on port " + port);
});
Angular4 Code
import { Component, OnInit } from '@angular/core';
import * as io from 'socket.io-client';
@Component({
moduleId: module.id,
selector: 'ch-home',
styleUrls: ['home.styles.css'],
templateUrl: 'home.template.html'
})
export class HomeComponent implements OnInit {
messageText: string;
messages: Array<any>;
socket: SocketIOClient.Socket;
constructor() {
// this.socket = io.connect('http://localhost:8000');
this.socket = io.connect();
}
ngOnInit() {
this.messages = new Array();
this.socket.on('message-received', (msg: any) => {
this.messages.push(msg);
console.log(msg);
console.log(this.messages);
});
this.socket.emit('event1', {
msg: 'Client to server, can you hear me server?'
});
this.socket.on('event2', (data: any) => {
console.log(data.msg);
this.socket.emit('event3', {
msg: 'Yes, its working for me!!'
});
});
this.socket.on('event4', (data: any) => {
console.log(data.msg);
});
}
sendMessage() {
const message = {
text: this.messageText
};
this.socket.emit('send-message', message);
// console.log(message.text);
this.messageText = '';
}
}
1
Als Service:
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import * as io from 'socket.io-client';
@Injectable()
export class ChatService {
private socket: SocketIOClient.Socket;
constructor() {
this.socket = io('http://localhost:3000');
}
// EMITTER
sendMessage(msg: string) {
this.socket.emit('sendMessage', { message: msg });
}
// HANDLER
onNewMessage() {
return Observable.create(observer => {
this.socket.on('newMessage', msg => {
observer.next(msg);
});
});
}
}
In-Komponente:
import { Component, OnInit } from '@angular/core';
import { ChatService } from './chat-service';
@Component({
// ...blabla...
})
export class ChatComponent implements OnInit {
msgInput: string = 'lorem ipsum';
constructor(
private chatService: ChatService,
) { }
ngOnInit() {
this.chatService.onNewMessage().subscribe(msg => {
console.log('got a msg: ' + msg);
});
}
sendButtonClick() {
this.chatService.sendMessage(this.msgInput);
}
}
0
Neben der Antwort des VithuBati Sie installieren müssen: npm i socket.io-client --save npm i @types/socket.io-client --save
+0
das, was die Frage Titel OP ist bereits sagt. Ich denke er wusste wie man npm benutzt;) –
Verwandte Themen
- 1. Angular 4 - Wie verwendet man .find() richtig?
- 2. Angular 4 - DateFormatter - wie man
- 3. Wie verwendet man DataTable in Angular 2
- 4. Angular - Wie verwendet man Pfeilfunktionen mit Argumenten?
- 5. Angular 4 - Wie man Projektebene-Abhängigkeit gibt
- 6. Wie Unit-Test eine Angular 4-Komponente, die router.paramMap verwendet
- 7. Wie in Angular 2/4
- 8. Wie verwendet man Angular Resource Sails?
- 9. Angular 2/4/Universal - Wie werden JSON-LD-Daten verwendet?
- 10. Dynamische Injektion in Angular 4
- 11. Wie verwendet man Urlib in Python 3? 4
- 12. Rails 4 - wie man eine Hilfsmethode in der Elternansicht verwendet
- 13. Wie verwendet man Versprechen in Knoten 4.x?
- 14. Wie verwendet man verschiedene Schriftarten in Bootstrap 4?
- 15. Wie verwendet man Params in der Basis-URL eckig 4+?
- 16. Wie ändert man das Präfix in Zhipster mit Angular 4?
- 17. Angular 4, wie man ganze tr in Tabelle schieben
- 18. Wie importiert man mapbox-gl-draw in Angular 2/4?
- 19. Wie benutzt man dieses jQuery Plugin in Angular 4?
- 20. Wie man Objekt durch Zeichenkette in Angular analysiert 4
- 21. Wie benutzt man jspdf-autotable in Angular 4?
- 22. Wie implementiert man Google Maps API (initMap) in Angular 4?
- 23. Wie man die JSON-Datei in Angular 4 scripts liest
- 24. Wie ändert man nur bestimmte Tabellenzeilen in Angular 4?
- 25. ngx-Paginierung in Angular 4. Wie erhält man die Seitennummer?
- 26. Wie spezifiziert man den Datentyp für RactiveForm in Angular 4+?
- 27. Wie importiert man JQuery iCheck in Angular 2/4
- 28. Wie kommuniziert man in Angular 4 App mit dem DOM?
- 29. Wie neue Vorlage in Angular 4 aufrufen?
- 30. Laufzeitbindung in Angular 4
Danke, das war hilfreich –