0
我用液碱中和Socket.io,我有一个问题,“火”发出的acknowleage回调..离子,Socket.io和AngularJS,Acknowleage不起作用
在正常的JavaScript客户端是:
function ack(response){
console.log(response);
}
socket.emit('message',{data:"data"}, ack);
当服务器recibe该消息的客户端火该功能,服务器侧是..
socket.on('message',function(data,fn){
fn({data:"response"});
});
所以,当服务器执行的FN({数据: “响应”} ),客户开火了功能。
我建立与离子框架此工厂:
services.factory('$socket', ['$rootScope', function($rootScope) {
var socket = io.connect('http://127.0.0.1:9564');
function on(eventName, callback){
console.log(eventName);
socket.on(eventName, function() {
var args = arguments;
$rootScope.$apply(function() {
callback.apply(socket, args);
});
});
}
function emit(eventName, data, callback){
socket.emit(eventName, data, function() {
var args = arguments;
$rootScope.$apply(function() {
callback.apply(socket, args);
});
});
}
return {
on: on,
emit: emit
};
}]);
在我UserCtrl我尝试以这种方式来使用:
function OnLogin(data){
console.log(data);
$scope.closeLogin();
}
$scope.doLogin = function() {
$socket.emit('user:login', $scope.loginData, OnLogin);
};
的问题是,该功能OnLogin不会被调用,我尝试把这个函数放到$ scope.OnLogin中,但是是一样的。
Eny对此有何解决方案?
感谢
是的,问题是在AndroidManifiest互联网permition。 :P。谢谢。 – cmarrero01 2014-12-29 11:42:44