Angular で WebSocket を使用する方法の紹介

不言
リリース: 2018-07-27 13:36:35
オリジナル
3144 人が閲覧しました

この記事では、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート