【发布时间】:2015-04-23 23:38:45
【问题描述】:
我正在尝试在我的 ionic 应用程序和我构建的套接字服务器之间创建一个套接字连接。
在 iOS 模拟器中使用
ionic run ios --target="iPhone-6-Plus"运行应用程序时,套接字连接将不起作用使用
ionic serve在浏览器中为应用程序提供服务时,套接字连接有效。
我的代码
我的应用客户端中有一个连接到我的套接字服务器的套接字服务:
.factory('Sockets', function($http, socketFactory){
var myIoSocket = io.connect('localhost:5000');
var mySocket = socketFactory({
ioSocket: myIoSocket
});
return mySocket;
})
这是我的客户端套接字请求的样子:
angular.module('crewapp.chat', [])
.controller('ChatController', function($scope, Auth, Sockets, $localStorage){
$scope.test = 'Chats';
Sockets.emit('join room', $localStorage.groupname)
});
这是我的套接字服务器(简而言之)的样子
io.sockets.on('connection', function(socket) {
socket.on('join room', function(room) {
socket.room = room;
socket.join(room);
console.log(room);
});
我的尝试
- 我试过看看 Socket.emit 是否在应用程序中定义:
- 我通过在
socket.on('connection')回调函数体中放置一个console.log 概括了套接字服务器应该记录的位置。
【问题讨论】:
-
你应该尝试调出 safari 开发者工具,看看是否有任何 JS 错误被抛出。
-
它实际上完全在浏览器中工作(没有抛出任何错误)。在为 iOS 构建时它不起作用。
-
这就是我的意思,为模拟器打开 safari 开发工具。环境完全不同,所以我认为值得一试。 stackoverflow.com/a/16203106/580487
标签: javascript angularjs cordova sockets ionic-framework