Как использовать socket.io с AngularJS?

0

Я хочу создать приложение для обмена мгновенными сообщениями, используя Socket.IO и AngularJS.

var socket = io(); команда отменяет скрипт AngularJS. Если я удалю эту строку, работа привязки AngularJS и {{ message }} отобразит ожидаемое значение переменной сообщения.

Однако приведенный ниже код отображает строку "{{message}}" на моей странице:

<html>
<head>
  <title>My Chat</title>
  <link rel="stylesheet" type="text/css" href="css/style.css">
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</head>
<body>
  <div ng-app="myApp" ng-controller="myCtrl">
    {{ message }}
    <form >
      <input autocomplete="off" ng-model="exampleText" type="text" />
      <button type='button' ng-click="submit()">
        Send
      </button>
    </form>
  </div>
  <script>

   var app=angular.module("myApp", []);
   var socket = io();
   app.controller("myCtrl", function($scope) {
     $scope.message='';
     $scope.submit=function(){
      socket.emit('chat message', = angular.copy($scope.exampleText));
      return false; 
    }
    socket.on('chat message', function(msg){
      $scope=$scope.message+'<li>'+ msg;
    });
  });
</script>
</body>
</html> 
  • 3
    Вы пропустили добавление JavaScript-файлов socket.io в HTML, поэтому socket.emit и socket.on ошибку
Теги:
socket.io

1 ответ

2
Лучший ответ

Как сказал Krzystof Safjanowski в своем комментарии, похоже, что вы забыли включить файл сценария websocket в свой html. Если вы посмотрите в консоли своего браузера (Ctrl+Shift+J в Chrome и Firefox), вы увидите соответствующие ошибки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню