首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Socket.emit不适用于Ionic

Socket.emit不适用于Ionic
EN

Stack Overflow用户
提问于 2015-04-23 23:38:45
回答 1查看 1.1K关注 0票数 0

我正在尝试在我的离子应用程序和我构建的套接字服务器之间创建一个套接字连接。

  • 在iOS模拟器中使用ionic run ios --target="iPhone-6-Plus"运行应用程序时,套接字连接将无法工作
  • 当使用ionic serve在浏览器中为应用程序提供服务时,套接字连接工作。

我的代码

我的应用程序客户机中有一个套接字服务,它连接到我的套接字服务器:

代码语言:javascript
复制
.factory('Sockets', function($http, socketFactory){

  var myIoSocket = io.connect('localhost:5000');

  var mySocket = socketFactory({
    ioSocket: myIoSocket
  });

  return mySocket;

})

下面是我的客户端套接字请求的样子:

代码语言:javascript
复制
angular.module('crewapp.chat', [])
.controller('ChatController', function($scope, Auth, Sockets, $localStorage){
  $scope.test = 'Chats';
  Sockets.emit('join room', $localStorage.groupname)

});

以下是我的套接字服务器(简而言之)的样子

代码语言:javascript
复制
io.sockets.on('connection', function(socket) {
  socket.on('join room', function(room) {
    socket.room = room;
    socket.join(room);
    console.log(room);
});

我试过什么

  1. 我已经尝试过在应用程序中定义Socket.emit,它是:

  1. 通过在console.log回调的函数体中放置一个socket.on('connection'),我概括了套接字服务器应该登录的位置。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-24 18:13:18

我知道问题出在哪里了。当连接到离子/科尔多瓦的套接字服务器时,您必须在服务器url前面加上http://。应用程序仍将在浏览器中工作的原因是浏览器将自动添加前缀。

代码语言:javascript
复制
.factory('Sockets', function($http, socketFactory){

  var myIoSocket = io.connect('http://localhost:5000');

  var mySocket = socketFactory({
    ioSocket: myIoSocket
  });

  return mySocket;

})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29836239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档