简体   繁体   English

AngularJS和Websocket

[英]AngularJS and Websocket

I am trying to create a simple echo test application wherein I have, connect and disconnect buttons. 我试图创建一个简单的回声测试应用程序,其中有连接,断开连接的按钮。 Whenever I click on connect, I want to create an object of websocket. 每当我单击connect时,我都想创建一个websocket对象。 I am doing that in a service. 我正在做这项服务。 But somehow, after creating an object onopen is not getting fired. 但是以某种方式,在创建对象之后,onopen不会被解雇。 I am new to this. 我是新来的。 Can someone help me? 有人能帮我吗? thanks. 谢谢。 Here's my code 这是我的代码

HTML Code HTML代码

<button class="echo-test-button" id ="connect" ng-click ="connect()">
        Connect
    </button>
    <button class="echo-test-button" id ="disconnect" ng-click ="disconnect()">
        Disconnect
    </button>

Controller 控制者

var app = angular.module("test");
app.controller('SocketCtrl',["$scope","$window","Socket","$rootScope",
    function ($scope, $window, socket, $rootScope) {

    $scope.connect = function () {

        socket.createConnection();
    }

    }]);

Socket Service 套接字服务

angular.module("test").factory("Socket",["$http","$q", function ($http, $q) {
    var ws = {};
    var socket = {
        url :  "ws://echo.websocket.org/",

    };
    socket.createConnection = function() {
        ws = new WebSocket(socket.url);
    };
    ws.onopen = function (event) {
        console.log("Established");
    }
    return socket;
}]);

Your onopen handler is not setup propertly. 您的onopen处理程序未正确设置。 Move the onopen handler inside the createConnection method. 将onopen处理程序移动到createConnection方法中。

angular.module("test").factory("Socket",["$http","$q", function ($http, $q) {
    var ws = {};
    var socket = {
        url :  "ws://echo.websocket.org/",

    };
    socket.createConnection = function() {
        ws = new WebSocket(socket.url);
        ws.onopen = function (event) {
            console.log("Established");
        }
    };
    return socket;
}]);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM