Как добавить socket.io с моим угловым приложением 1.6.9? - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь создать приложение чата с socket.io, angular 1.6.9 + angular-routs, php, mysql.Я сделал регистрацию и вход без перезагрузки страницы.И теперь я с моим (dashboard.html).

Моя проблема - после того, как я вошел в систему без перезагрузки моей страницы (dashboard.html).Я хочу использовать socket.io для своей системы чата, но я не получаю никакого ответа от io.on ("connection", (socket) => {...});на мой (dashboard.html).

Я попытался передать var socket = io ();ИЛИ var socket = io.connect ("http://localhost:88"); in index.html ..), а также попытался передать (angular-controller.js), но не получил сообщение от io.on (" connection ", (socket) => {...});

Вот мой код с загрузкой index.html сначала при получении ответа от localhost: 88 (app.js) и в index.html с использованием углового маршрута(angular-controller.js) просматриваются все страницы.

Я компилирую (app.js) файл для моего проекта. (nodemon app.js)

index.html

<!DOCTYPE html>
<html>
<head>
    <link rel="icon" href="https://www.livechatinc.com/wp-content/themes/livechat2.0/media/img/press/lc-logos/logo-livechat.png" sizes="16x16">
    <title>Chat Application</title>
    <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="css/w3.css">
    <script type="text/javascript" src="js/bootstrap.min.js"></script>
    <script type="text/javascript" src="js/angular.min.js"></script>
    <script type="text/javascript" src="js/angular-route.js"></script>
    <script type="text/javascript" src="js/angular-sanitize.js"></script>
    <script type="text/javascript" src="http://127.0.0.1:88/socket.io/socket.io.js"></script>
</head>
<body ng-app = "myApp">

    <!-- All Page Route On This <div>..</div> !-->
    <div ng-view id="maincontent"></div>
    <!-- <input type="text" name="name" ng-model = "name">{{name}} -->
    <script type="text/javascript" src="js/popper.min.js"></script>
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/controller.js"></script>

</body>
</html>

app.js

const express = require('express');
const app = express();
const http = require('http').Server(app);
const io = require('socket.io')(http);
const session = require('express-session');
const cookieparser = require('cookie-parser');
const connect = require('./module/connection.js');

const port = 88;
if(http.listen(port)){console.log("Listening at "+"localhost:"+port);}else{console.log("Something Went Worng");}

/* Serving Static Files */
app.use(express.static(__dirname+"/public"));

app.get("/", (request,response) =>  {
    response.sendFile(__dirname+"/index.html");
});
app.get("#!/dashboard",(request, response) => {
    io.on("connection", (socket) => {
        console.log("User connect with socket");
        socket.on("dissconnect", () => {
            console.log("User reconnecting");
        });
    });
});
/* Page Handling When User not get Page Throw 404 Error This method must be after declaring all the pages */
app.get("*", (request,response) => {
    response.sendFile(__dirname+"/public/error/404.html");
});

angular-controller.js

const app = angular.module("myApp",['ngSanitize','ngRoute']);
var socket = io.connect("http://127.0.0.1:88");
/*
    Routing Page with its controller
*/
app.config(function($routeProvider) {
    $routeProvider.when('/dashboard', {
        resolve: {
            check: function ($location, user){
                if(!user.isUserLoggedIn()){
                    $location.path("/login");
                }
            },
        },
        templateUrl: '../view/dashboard.html',
        controller: 'dashbordCtrl'
    }).when("/logout", {
        resolve: {
            deadResolve: function($http, $location, user){
                $http({
                    url: 'http://localhost/project/controller/server.php',
                    method: 'POST',
                    data: 'action='+'logout',
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded'
                    }
                }).then(function(response){
                    console.log(response);
                    if(response.data.logoutStatus){
                        user.clearData();
                        $location.path("/");
                    }else{
                        console.log("Check....!");
                    }
                });
            },
        },
    }).otherwise({
        template: '404'
    });

});

/*
   I want my socket.io connection start in dashboardCtrl
*/

app.controller('dashbordCtrl', function($scope, $location, user){
    $scope.id   = user.getId();
    $scope.user = "Wellcome, "+user.getname();
    $scope.email = "(' "+user.getemail()+" ')";
}); 
...