この記事では、Angular で WebSocket を使用する方法を紹介します。これは参考になるもので、困っている友人に役立つことを願っています。
WebSocket に触れ始めた人にとって、それは本当に難しいです。そしてその途中には落とし穴もたくさんあります。
インターネット上には WebSocket に関する記事やプラグインがたくさんあります。いろいろ検索した結果、angularjs を使用して開発している友人には、このプラグインが良いと思います。
angular websocket.js
こちらは比較的完成度の高い開発ドキュメントがあり、使用方法のガイダンスでは、ソケットが予期せず中断された場合の自動接続回復などの機能を実現できます。
以下は私のプロジェクトで使用される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 を使用します。
これは、メッセージ配布センターと、バックグラウンド メッセージの変更によってトリガーされるソケット ブロードキャスト イベントに分かれています。
関連する推奨事項:
JavaScriptの学習でよく遭遇するJSイベントハンドラー
webpack4に基づいて反応スキャフォールディングを構築する方法のプロセス分析
以上がAngular で WebSocket を使用する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。