我正在尝试创建一个简单的回声测试应用程序,其中我有连接和断开按钮。每当我点击连接时,我都想创建一个websocket对象。我正在服务中这样做。但不知何故,在打开创建对象后不会被触发。我是新手。有人可以帮助我吗?谢谢。这是我的代码
网页代码
<button class="echo-test-button" id ="connect" ng-click ="connect()">
Connect
</button>
<button class="echo-test-button" id ="disconnect" ng-click ="disconnect()">
Disconnect
</button>
控制器
var app = angular.module("test");
app.controller('SocketCtrl',["$scope","$window","Socket","$rootScope",
function ($scope, $window, socket, $rootScope) {
$scope.connect = function () {
socket.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;
}]);
您的 onopen 处理程序未正确设置。在 createConnection 方法中移动 onopen 处理程序。
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;
}]);