[英]Socket.emit doesn't work with Ionic
我正在嘗試在離子應用程序和已構建的套接字服務器之間創建套接字連接。
使用ionic run ios --target="iPhone-6-Plus"
在iOS模擬器中運行應用程序時,套接字連接將無法正常工作
使用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.on('connection')
回調函數的主體中,概括了套接字服務器應該記錄的位置。 我弄清楚了問題所在。 當使用ionic / cordova連接到套接字服務器時,必須在服務器URL前面加上http://
。 該應用程序仍可在瀏覽器中運行的原因是,瀏覽器將自動添加前綴。
.factory('Sockets', function($http, socketFactory){
var myIoSocket = io.connect('http://localhost:5000');
var mySocket = socketFactory({
ioSocket: myIoSocket
});
return mySocket;
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.