Я наткнулся на множество сообщений здесь и на других сайтах о том, как заставить socket.io работать в приложении телефонной связи Android, к сожалению, у меня все еще есть проблемы. Если у вас есть опыт настройки такого рода вещей, любые советы, которые вы могли бы дать, были бы очень признательны, поскольку я потратил несколько дней на то, чтобы вырвать мне волосы: P
Итак, для начала у меня есть очень простая настройка сервера socket.io, который работает на моей локальной машине:
var server = require('http').createServer();
var io = require('socket.io')(server);
io.sockets.on('connection', function (socket) {
console.log('socket connected');
socket.on('disconnect', function () {
console.log('socket disconnected');
});
socket.emit('text', 'wow. such event. very real time.');
});
server.listen(3000);
который я получил из одного из учебников, которые я нашел, и, похоже, он работает нормально.
Теперь в моем приложении телефонной связи весь код, который у меня есть, выглядит следующим образом:
var app = angular.module("MyApp", [
"MyCtrl"
]);
app.controller("AppCtrl", ["$scope", function ($scope) {
console.log("About to attempt a connection (" + socket + ")!");
var socket = io("10.0.5.159:3000");
socket.on("connect", function(data) {
console.log("Connected: " + data);
});
socket.on("error", function(err) {
console.log("Error: " + err);
});
}]);
Простое приложение angular.js с одним контроллером, который пытается подключиться к серверу (предоставленный IP-адрес является правильным в моей локальной сети). Мой журнал попадает в ловушку, поэтому я знаю, что этот код выполняется, но я никогда не получаю событие подключения или событие ошибки, и в консоли не появляется никаких ошибок, просто кажется, что он молча терпит неудачу. Я также не получаю событие подключения на сервере.
Согласно другому сообщению stackoverflow, я убедился, что мой config.xml содержит соответствующие
<access origin="10.0.5.159*" />
вход. Но я все еще, кажется, ничего не получаю с ним. Та же строка кода
var socket = io("10.0.5.159:3000");
при выполнении в окне браузера Safari работает точно так, как ожидалось, и мой сервер регистрирует событие подключения, поэтому я уверен, что сервер и код подключения действительны.
Любые идеи, что я могу делать неправильно?
Access-Control-Allow-Origin: *
) с сервераnode.js
на клиент? - person frank   schedule 18.01.2015