当前位置: 首页 > 面试题库 >

AngularJS和WebSockets超越

简意
2023-03-14
问题内容

我刚刚阅读了这篇文章,并且我知道有什么区别。但是我仍然有一个问题。我可以/应该在同一应用程序/网站中使用它吗?假设我希望AngularJs提取内容并更新我的页面,并连接到REST
api和所有这些重要内容。但除此之外,我还希望进行实时聊天,或者在收到更新或消息时触发其他客户端上的事件。

Angular支持吗?还是我需要使用Socket.io之类的东西来触发这些事件?两者都使用有意义吗?如果有人可以同时使用这两个对象,则可以帮助我或为我提供一些不错的阅读资料。

希望我足够清楚。感谢您的任何帮助。


问题答案:

Javascript支持WebSocket,因此您不需要其他客户端框架即可使用它。请查看此基于WebSocket的AngularJS应用程序中声明的$connection服务。

基本上,您可以听消息:

   $connection.listen(function (msg) { return msg.type == "CreatedTerminalEvent"; }, 
        function (msg) {
            addTerminal(msg);
            $scope.$$phase || $scope.$apply();
   });

听一次(非常适合请求/响应):

    $connection.listenOnce(function (data) {
        return data.correlationId && data.correlationId == crrId;
    }).then(function (data) {
        $rootScope.addAlert({ msg: "Console " + data.terminalType + " created", type: "success" });
    });

并发送消息:

    $connection.send({
        type: "TerminalInputRequest",
        input: cmd,
        terminalId: $scope.terminalId,
        correlationId: $connection.nextCorrelationId()
    });

通常,由于WebSocket连接是双向的并且具有良好的支持,因此您还可以使用它从请求/响应模型中从服务器获取数据。您可以有两种模型:

  • 发布者/订阅者 :客户端在其中声明对某些主题的兴趣并为具有该主题的消息设置处理程序,然后服务器在认为合适时发布(或推送)消息。

  • 请求/响应 :客户端在其中发送带有requestID(或correlationId)的消息,并监听该requestId的单个响应。

不过,您可以同时拥有两者,并使用REST来获取数据,并使用WebSocket来获取更新。

在服务器端,您可能需要使用Socket.io或任何服务器端框架,才能使后端具有WebSocket支持。



 类似资料:
  • 我有点小麻烦。我正在基于jetty websockets实现用java构建一个小型服务器。客户端是浏览器,我使用websockets javascript API发送信息。 在我发送这些特殊字符之前,一切都很顺利,比如:euroweaheñü,所以问题就在这里。客户端1向服务器发送带有以下字符之一的消息。服务器打印该消息,然后将该消息发送给客户机2。 客户机2接收消息并在浏览器html页面上打印消

  • 网关是用@WebSocketGateway()装饰器注解的类。默认情况下,网关使用 socket.io包,但也提供了与广泛的其他库的兼容性,包括本地web套接字实现(阅读更多)。 ?> 提示网关的行为与简单的提供者相同,因此它可以毫不费力地通过构造函数注入依赖关系。另外,网关也可以由其他类(提供者和控制器)注入。 安装 首先,我们需要安装所需的软件包: $ npm i --save @nestjs

  • 问题内容: websockets有趣的部分是从服务器向浏览器发送本质上未经请求的内容,对吗? 好吧,我正在使用GregorMüllegger的django-websocket。使Websockets在Django中工作确实是一个很棒的早期尝试。 我完成了“ helloworld”。它的工作方式是:当请求是websocket时,会将对象websocket附加到请求对象。因此,在解释websocket

  • 问题内容: websockets有趣的部分是从服务器向浏览器发送本质上未经请求的内容,对吗? 好吧,我正在使用GregorMüllegger的django-websocket。使Websockets在Django中工作确实是一个很棒的早期尝试。 我完成了“ hello world”。它的工作方式是:当请求是websocket时,会将对象websocket附加到请求对象。因此,在解释websocke

  • Spring integration提供了非反应的入站/出站WebSocket适配器,简单地说,它通过内部容器将会话与id相关联,您对消息进行一些处理,在出站时,它检查消息头是否有会话id,并通过该会话发送。 现在,Spring通过org.springframework.web.reactive.socket.WebSocketSession和其他类提供了反应性WebSocket支持,我想知道在反