angular中使用Socket.io实例代码

服务端(nodeJs/express):

io.on('connection',(socket) => {
console.log('user connected');

socket.on('disconnect',function(){
console.log('user disconnected');
});

socket.on('add-message',(message) => {
io.emit('message',{type:'new-message',text: message});
});
});

http.listen(5000,() => {
console.log('started on port 5000');
});

客户端,创建一个ChatService

export class ChatService {
private url = 'http://localhost:5000';
private socket;

sendMessage(message){
this.socket.emit('add-message',message);
}

getMessages() {
let observable = new Observable(observer => {
this.socket = io(this.url);
this.socket.on('message',(data) => {
observer.next(data);
});
return () => {
this.socket.disconnect();
};
})
return observable;
}
}

ChatComponent

rush:js;"> import { Component,OnInit,OnDestroy } from '@angular/core'; import { Control } from '@angular/common'; import { ChatService } from './chat.service';

@Component({
moduleId: module.id,selector: 'chat',template: `<div *ngFor="let message of messages">
{{message.text}}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...