问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

有人能介绍一下angular中websocket吗

发布网友 发布时间:2022-05-08 10:19

我来回答

2个回答

懂视网 时间:2022-05-14 21:31

这篇文章给大家介绍的文章内容是关于angular如何使用websocket的方法介绍,有很好的参考价值,希望可以帮助到有需要的朋友。

对于开始接触websocket的人来说,实在是太难了。而且一路上的坑还不少。

网上有很多关于websocket的文章和插件,老码找了很多之后还是觉得这个插件不错,对于使用angularjs开发的朋友,我很推荐这个

angular websocket.js

这个有比较全的开发文档和使用指导,可以实现socket意外中断自动恢复连接等功能。

下面是我的项目中使用的websocket,

先在项目中引进websocket.js文件,app中添加模块引用

angular.module('app', [“ngWebSocket”])

请求地址使用的是自动适配的,主要解决开发环境和服务器切换之后的更改麻烦,或者更改域名之后适用

angular.module('app').factory('socketData', function ($websocket, $location) {
 var host = $location.host();
 if ($location.port() && $location.port() != 80 && $location.port() != 443) {
 host = host + ':' + $location.port();
 }
 var ws = "ws";
 if ($location.protocol() == 'https') {
 ws = "wss";
 }
 // 开始连接
 var dataStream = $websocket(ws + '://' + host + '/Api/App');
 dataStream.reconnectIfNotNormalClose = true;
 var collection = [];
 var methods = {
 lastestdata: {},
 readyState: 0,
 collection: collection,
 sendData: function (data) {
  dataStream.send(JSON.stringify(data));
 }
 };
 dataStream.onMessage(function (message) {
 methods.readyState = dataStream.readyState;
 methods.lastestdata = JSON.parse(message.data);
 collection.push(JSON.parse(message.data));
//这里可以直接跳转到制定的页面,我这里是跳转到了我的地图页面
 //window.location = '/#/app/Map/Index'
 });
dataStream.onError(function (message) {
//监控状态变化,实时跟进连接状态
 methods.readyState = dataStream.readyState;
 });
dataStream.onOpen(function (message) {
 methods.readyState = dataStream.readyState;
 });
dataStream.onClose(function (message) {
 methods.readyState = dataStream.readyState;
 });
return methods;
})
使用的时候也很简单,直接在controller中加入这个
app.controller('mapctrl', function ($scope, $timeout, $interval, $state, $location, $window, $http, $compile, socketData) {
$scope.socketData = socketData;
//可以监控这个变量的变化实时处理对应的操作
})

好了websocket使用,客户端的就差不多这样了

接下来老码给大家分享.net环境下服务器端的websocket使用。

其中分为,消息分发中心和后台消息变化触发的socket广播事件。

热心网友 时间:2022-05-14 18:39

WebSocket是html5新增加的一种通信协议,目前流行的浏览器都支持这个协议,例如Chrome,Safari,Firefox,Opera,IE等等,对该协议支持最早的应该是chrome,从chrome12就已经开始支持,随着协议草案的不断变化,各个浏览器对协议的实现也在不停的更新。该协议还是草案,没有成为标准,不过成为标准应该只是时间问题了,从WebSocket草案的提出到现在已经有十几个版本了,目前最新的是版本17,所对应的协议版本号为13,目前对该协议支持最完善的浏览器应该是chrome,毕竟WebSocket协议草案也是Google发布的。
1. WebSocket API简介
首先看一段简单的javascript代码,该代码调用了WebSockets的API。

[javascript] view plaincopy
var ws = new WebSocket(“ws://echo.websocket.org”);

ws.onopen = function(){ws.send(“Test!”); };

ws.onmessage = function(evt){console.log(evt.data);ws.close();};

ws.onclose = function(evt){console.log(“WebSocketClosed!”);};

ws.onerror = function(evt){console.log(“WebSocketError!”);};

这份代码总共只有5行,现在简单概述一下这5行代码的意义。

第二行到第五行为WebSocket对象注册消息的处理函数,WebSocket对象一共支持四个消息 onopen, onmessage, onclose和onerror,当Browser和WebSocketServer连接成功后,会触发onopen消息;如果连接失败,发送、接收数据失败或者处理数据出现错误,browser会触发onerror消息;当Browser接收到WebSocketServer发送过来的数据时,就会触发onmessage消息,参数evt中包含server传输过来的数据;当Browser接收到WebSocketServer端发送的关闭连接请求时,就会触发onclose消息。我们可以看出所有的操作都是采用消息的方式触发的,这样就不会阻塞UI,使得UI有更快的响应时间,得到更好的用户体验。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? AngularJS,Ember.js,Backbone这类新框架与jQuery的重要区别在哪里... backbone和angular优缺点的对比 枇杷可以治疗哪些症状? 怎么代理IP?怎么修改IP地址? 品牌形象的有形要素 大学985和211哪个好? 985工程大学和211工程大学,哪个更好一些? 求QQ男生头像,要整洁清新,低调、帅气的那种。最好不要非主流的,不要动漫的、、好看额外加分! 男非主流QQ头像(要看不见脸的远距离图片) 浦发银行信用卡额度多少 申购新股和买创业板各需要什么条件?新开户都买不了吗?申购新股一般都会升值吗? 百达翡丽5524g有升值空间吗? 云南牛栏胜景旅游开发项目是亚投行投资的吗? 亚投行批准首笔在华投资用于什么? 亚投行和玺怎么样啊?有没有收藏价值? 万象更新—— 造句 一祝二祝三祝是什么歌 微信钱包输错几次会冻结 怎么清理,更多的空间。 求小说《邀宠》 谢谢 搭建angular的时候cannot get 是什么意思 angular2 在不确定父组件的情况下,子组件怎么调用父组件的方法 angular2失去焦点函数怎么写 在angularjs中ng-model里可以使用三元运算符吗 怎么用 angularjs 把当前时间让文本框显示? 如何最快瘦脸? 读MBA好还是读同等学历申硕好? MBA联考和同等学历申硕的区别 同等学历研究生与MBA有什么区别 mba硕士和同等学历申请硕士学位哪个好? 请问在职考研同等学历和MBA有什么区别?考试哪种好过些? 在职人员以同等学力申请硕士学位和10月MBA有什么区别?哪个较好? 请问MBA相当于什么同等学历,博士后吗 多吃松子有什么坏处 吃松子是不容易发胖有什么好处和坏处 手提电脑如何连接WIFI? 手提电脑怎么连接无线WiFi的???谢谢 各位朋友都办值机么还是直接去机场哪个比较好 美的家庭*空调多少钱?160平米一厅,二厨,二卫,四卧。按省钱的算 美的空调140跟120的价格有差距吗