ng使用websocket

1.安装依赖库
npm install ws --save

2.安装类型定义文件

npm install @types/ws --save

3.编写服务

import { Injectable } from '@angular/core';
import {Observable} from "rxjs/Observable";

@Injectable()
export class WebSocketService {

ws:WebSocket;

constructor() { }

createObservableSocket(url:string):Observable<any>{
this.ws=new WebSocket(url);
return new Observable(
observer=>{
this.ws.onmessage=(event)=>observer.next(event.data);
this.ws.onerror=(event)=>observer.error(event);
this.ws.onclose=(event)=>observer.complete();
}
)
}

sendMessage(msg:string){
this.ws.send(msg);
}
}

4.在控制器中使用

import { Component, OnInit } from '@angular/core';
import {Observable} from "rxjs/Observable";
import 'rxjs/add/operator/debounceTime';
import 'rxjs/add/operator/throttleTime';
import 'rxjs/add/observable/fromEvent';
import 'rxjs/add/operator/retry';
import {observable} from "rxjs/symbol/observable";
import {HttpService} from "../service/http.service";
import {WebSocketService} from "../service/web-socket.service";

@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {

constructor(private httpreq:HttpService,private wsService:WebSocketService) {

}

ngOnInit() {
//this.httpreq._get('',(data)=>console.log(data));
this.wsService.createObservableSocket('ws://localhost:8080')
.subscribe(
data=>console.log(data),
err=>console.log(err),
()=>console.log('it s over')
)
}

sendMessageToServer(msg:string){
this.wsService.sendMessage(msg);
}

}

最新文章

  1. css相对定位和绝对定位
  2. iOS开发之功能模块--Apns推送中的的json格式介绍
  3. Swift3.0都有哪些变化
  4. [Java面试十一]数据库总结.
  5. spring--学习之IOC DI
  6. centos 7.0 查看内存使用情况 和 查看硬盘使用情况
  7. Research on Unsupervised Word Alignment Based on Inversion Transduction Grammar
  8. 如何在VS 2010中使用 VS2013的解决方案
  9. C#代码 json类
  10. java后台获取国际化资源文件
  11. 《HTML5与CSS3权威指南》读书笔记(上册)—HTML5篇
  12. jQuery中易混淆知识点总结(持续更新)
  13. JavaFx新手教程-布局-StackPane
  14. DVWA 黑客攻防演练(十三)JS 攻击 JavaScript Attacks
  15. webpack4.0各个击破(5)—— Module篇
  16. 2017年7月最新浏览器市场份额,IE8份额仅剩个位数
  17. 20155339 Exp9 Web安全基础
  18. IPSec协议;IPv6为何增加对IPSec协议的支持
  19. Entity Framework6的在线下载安装
  20. thinkphp处理jQuery EasyUI form表单问题

热门文章

  1. 【Java】Spring MVC 扩展和SSM框架整合
  2. 详解 RPL、DPL、CPL 的关系
  3. oracle 数据被修改怎么修复?(闪回)
  4. C++11中std::forward的使用
  5. LeetCode:11. ContainerWithWater(Medium)
  6. Win10开发笔记(一):一些VS2015中可能遇到的问题
  7. 【廖雪峰老师python教程】——错误和调试
  8. ProxySQL读写分离测试(续)
  9. fiddler抓包-简单易操作(二)
  10. 容器基础(七): 使用docker compose部署程序