gpt4 book ai didi

javascript - 如何在 Angular 4 中使用 socket.io-client

转载 作者:可可西里 更新时间:2023-11-01 01:45:13 25 4
gpt4 key购买 nike

服务器端是 php laravel echo websocket,我正在尝试通过 Angular 4 进行连接。我尝试使用 ng2-socket-io - npm 和 laravel-echo - npm,但都没有成功。如果有人知道我如何使用它的任何文档或教程,请帮助

最佳答案

嗨@giga 下面给出了工作示例。

设置

npm i socket.io-client --save
npm i @types/socket.io-client --save

服务器端(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 代码

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 = '';
}

}

关于javascript - 如何在 Angular 4 中使用 socket.io-client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47161589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com