【问题标题】:Use Websockets to control a browser window使用 Websockets 控制浏览器窗口
【发布时间】:2013-11-03 20:39:38
【问题描述】:

*nix 中的一些 CLI 应用程序使用 $BROWSER 环境变量,因此它可以调用 $BROWSER http://www.unix.com

我只是在寻找一个设置为$BROWSER 的可执行文件,它实际上通过 Websockets 控制远程任意 HTML5 浏览器窗口。

编写可执行文件很容易——我所要做的就是通过 websockets 连接并发送一些消息。

问题: 但是浏览器端呢?是否有一个 JS 库可以让我通过 Websockets 控制浏览器(至少设置它的window.location)?

【问题讨论】:

    标签: javascript websocket


    【解决方案1】:

    您可以使用 sock.js 与服务器通信,它支持多种服务器技术: https://github.com/sockjs/sockjs-client

    那么我建议你不要使用window.location,因为它会刷新页面,这违背了websockets的要点。

    当更改事件被触发时,您可以使用 angularjs 之类的东西来更新视图。

    index.html

    <div ng-view></div>
    <script src="http://cdn.sockjs.org/sockjs-0.3.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js">
    <script src="js/App.js"></script>
    

    Child.js

    angular.module('App', [])
    
        .controller('AppCtrl', function ($scope) {
            var sock = new SockJS('http://localhost:9999/chat');
    
            $scope.messages = [];
            $scope.sendMessage = function () {
                sock.send($scope.messageText);
                $scope.messageText = "";
            };
    
            sock.onmessage = function (e) {
                $scope.messages.push(e.data);
                $scope.$apply();
            };
        });
    

    我创建了一个使用 sockjs 的 nodejs 服务器示例,以使用 angularjs 更新视图: https://github.com/kmturley/angular-websockets

    【讨论】:

      猜你喜欢
      • 2013-02-20
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      相关资源
      最近更新 更多