400 Bad Request при подключении angular клиента к socket.io серверу, как быть?

Есть мобильная приложуля построенная на onsen.ui и angular.js.
Нужно добавить подключение к socket.io серверу, но при подключении консоль выдает 400 bad request, а сервак отвечает {"code":0,"message":"Transport unknown"}.

Я пробовал использовать https://github.com/btford/angular-socket-io, но результат такой же.

С чистым явасприптом проблем нет. Он как положено подключается и все отрабатывает, а вот c angular...

На сервере: LAMP & node.js (express@3.4.8, mysql@2.6.2, socket.io@1.3.5).

Серверный app.js
var express = require('express')(),
    http = require('http'),
    app = express,
    server = http.createServer(app),
    io = require('socket.io')(server),
    io = io.listen(server),
    mysql = require('mysql'),
    db = mysql.createConnection({
    host    : '',
    user    : '',
        password: '',
        database: '',
        }),
        userList = []; //Online Users
    
        io.sockets.on('connection', function(socket){
            blablabla
        });
    
        server.listen(3000, function(){
            console.log('Server started on *:3000') //Launch server in 3000 port
        });


Клиентский app.js

var app = angular.module('app', ['onsen', 'angular-images-loaded','ngSanitize', 'filters']);
    
        app.factory('socket',function ($rootScope){
            var socket = io.connect('http://server:3000');
            return {
                on: function (eventName,callback){
                    socket.on(eventName,function(){
                        var args = [].slice.call(arguments);
                        $rootScope.$apply(function(){
                            if(callback){
                                callback.apply(socket,args);
                            }
                        });
                    });
                },
                emit: function (eventName, data, callback){
                    var args = [].slice.call(arguments), cb;
                    if( typeof args[args.length-1]  == "function" ){
                        cb = args[args.length-1];
                        args[args.length-1] = function(){
                            var args = [].slice.call(arguments);
                            $rootScope.$apply(function(){
                                if(cb){
                                    cb.apply(socket,args);
                                }
                            });
                        };
                    }
                        socket.emit.apply(socket, args);
                    }
                };
            });
        app.controller('appController', [ '$http', '$scope', '$sce', '$rootScope', function($http, $scope, $sce, $rootScope, socket){
        //conroller code
        }]);


Заранее огромное спасибо за ответы.

P.S. Пытался задать вопрос на stackoverflow, но вечно ругается на 4 пробела при оформлении кода. Помучился с ним и плюнул так и не поняв как он работает.
  • Вопрос задан
  • 843 просмотра
Решения вопроса 1
@BeArty Автор вопроса
Походу никак быть. Сделал все на чистом javascript'e
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы