ng websocket
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);
}
}
最新文章
- css相对定位和绝对定位
- iOS开发之功能模块--Apns推送中的的json格式介绍
- Swift3.0都有哪些变化
- [Java面试十一]数据库总结.
- spring--学习之IOC DI
- centos 7.0 查看内存使用情况 和 查看硬盘使用情况
- Research on Unsupervised Word Alignment Based on Inversion Transduction Grammar
- 如何在VS 2010中使用 VS2013的解决方案
- C#代码 json类
- java后台获取国际化资源文件
- 《HTML5与CSS3权威指南》读书笔记(上册)—HTML5篇
- jQuery中易混淆知识点总结(持续更新)
- JavaFx新手教程-布局-StackPane
- DVWA 黑客攻防演练(十三)JS 攻击 JavaScript Attacks
- webpack4.0各个击破(5)—— Module篇
- 2017年7月最新浏览器市场份额,IE8份额仅剩个位数
- 20155339 Exp9 Web安全基础
- IPSec协议;IPv6为何增加对IPSec协议的支持
- Entity Framework6的在线下载安装
- thinkphp处理jQuery EasyUI form表单问题
热门文章
- 【Java】Spring MVC 扩展和SSM框架整合
- 详解 RPL、DPL、CPL 的关系
- oracle 数据被修改怎么修复?(闪回)
- C++11中std::forward的使用
- LeetCode:11. ContainerWithWater(Medium)
- Win10开发笔记(一):一些VS2015中可能遇到的问题
- 【廖雪峰老师python教程】——错误和调试
- ProxySQL读写分离测试(续)
- fiddler抓包-简单易操作(二)
- 容器基础(七): 使用docker compose部署程序