如何在我的angular 1.6.9应用程序中添加socket.io?

时间:2019-05-09 11:16:29

标签: angularjs socket.io node-modules angular1.6

我正在尝试使用socket.io,angular 1.6.9 + angular-routes,php,mysql创建聊天应用程序。我已经完成注册和登录,而无需重新加载页面。现在我和(dashboard.html)在一起了。

我的问题是我登录后没有在(dashboard.html)上重新加载页面。我想将socket.io用于我的聊天系统,但是我没有从io.on(“ connection”,(socket)=> {...})获得任何响应。到我的(dashboard.html)。

我尝试传递var socket = io();或var socket = io.connect(“ http://localhost:88”);在index.html ..中,还尝试传入(angular-controller.js),但未从中获取msg io.on(“ connection”,(socket)=> {...});

这是我的代码,当从localhost:88(app.js)获得响应时,首先加载index.html的代码;在使用角路由(angular-controller.js)的index.html中,查看所有页面。

我正在为我的项目编译(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()+" ')";
}); 

0 个答案:

没有答案