您可以使用 sock.js 与服务器通信,它支持多种服务器技术:
https ://github.com/sockjs/sockjs-client
然后我建议你不要使用 window.location 因为它会刷新页面,这会破坏 websockets 的要点。
当更改事件被触发时,您可以使用 angularjs 之类的东西来更新视图。
索引.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