gpt4 book ai didi

javascript - AngularJS 和 Websocket

转载 作者:行者123 更新时间:2023-11-28 03:45:37 25 4
gpt4 key购买 nike

我正在尝试创建一个简单的回声测试应用程序,其中有连接和断开连接按钮。每当我点击连接时,我想创建一个 websocket 对象。我正在服务中这样做。但不知何故,创建对象后 onopen 不会被解雇。我是新来的。有人能帮我吗?谢谢。这是我的代码

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();
}

}]);

套接字服务

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 处理程序未正确设置。将 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;
}]);

关于javascript - AngularJS 和 Websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48514259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com