全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

angular中使用Socket.io实例代码

服务端(nodeJs/express):

let app = require('express')();
let http = require('http').Server(app);
let io = require('socket.io')(http);

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

import { Subject } from 'rxjs/Subject';
import { Observable } from 'rxjs/Observable';
import * as io from 'socket.io-client';

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

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}}
          </div>
          <input [(ngModel)]="message" /><button (click)="sendMessage()">Send</button>`,
 providers: [ChatService]
})
export class ChatComponent implements OnInit, OnDestroy {
 messages = [];
 connection;
 message;
 
 constructor(private chatService:ChatService) {}

 sendMessage(){
  this.chatService.sendMessage(this.message);
  this.message = '';
 }

 ngOnInit() {
  this.connection = this.chatService.getMessages().subscribe(message => {
   this.messages.push(message);
  })
 }
 
 ngOnDestroy() {
  this.connection.unsubscribe();
 }
}

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


# angularjs  # socket.io  # angular2  # angular  # 使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室  # angular中不同的组件间传值与通信的方法  # AngularJS控制器之间的数据共享及通信详解  # AngularJS控制器controller正确的通信的方法  # 在Angular项目使用socket.io实现通信的方法  # 创建一个  # 服务端  # 大家多多  # 客户端  # text  # type  # listen  # disconnected  # function  # add  # emit  # message  # started  # Observable  # rxjs  # export  # client  # Subject  # unsubscribe  # port 


相关文章: 家庭服务器如何搭建个人网站?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  如何快速搭建高效服务器建站系统?  如何在IIS中新建站点并解决端口绑定冲突?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  如何用PHP快速搭建高效网站?分步指南  北京网站制作网页,网站升级改版需要多久?  如何用美橙互联一键搭建多站合一网站?  宁波自助建站系统如何快速打造专业企业网站?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  如何通过宝塔面板实现本地网站访问?  如何确保西部建站助手FTP传输的安全性?  威客平台建站流程解析:高效搭建教程与设计优化方案  宝塔建站无法访问?如何排查配置与端口问题?  图册素材网站设计制作软件,图册的导出方式有几种?  网站制作壁纸教程视频,电脑壁纸网站?  三星网站视频制作教程下载,三星w23网页如何全屏?  安徽网站建设与外贸建站服务专业定制方案  建站主机默认首页配置指南:核心功能与访问路径优化  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  如何选择CMS系统实现快速建站与SEO优化?  如何选择香港主机高效搭建外贸独立站?  建站之星安装提示数据库无法连接如何解决?  如何在腾讯云服务器上快速搭建个人网站?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  如何选择靠谱的建站公司加盟品牌?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  如何通过虚拟主机快速完成网站搭建?  建站之星如何修改网站生成路径?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  如何基于云服务器快速搭建网站及云盘系统?  如何构建满足综合性能需求的优质建站方案?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  如何在Tomcat中配置并部署网站项目?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  建站之星如何取消后台验证码生成?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  建站之星后台密码如何安全设置与找回?  如何续费美橙建站之星域名及服务?  孙琪峥织梦建站教程如何优化数据库安全?  TestNG的testng.xml配置文件怎么写  如何制作一个表白网站视频,关于勇敢表白的小标题? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。