【问题标题】:Ionic + Meteor + App Mobile. How to bind the server?离子+流星+移动应用程序。如何绑定服务器?
【发布时间】:2016-08-13 09:53:38
【问题描述】:

我有一个使用 Ionic 编写的混合应用程序。 我想集成一个 ion-app 聊天,我发现 this nice tutorial 了解如何使用 Ionic 和 Meteor 构建一个 whatsapp 克隆。 这是我第一次使用 Meteor,但我设法将该聊天集成到我现有的移动应用程序中。 但是,我不知道如何将客户端绑定到服务器。 在开发模式下,一切正常,因为它都在本地主机中。 无论如何,我想将服务器端移动到我的主机域,而客户端将构建为移动应用程序。我怎么能对客户说,服务器不是 localhost ?谢谢你

示例客户端代码:

编辑

代码与教程相同...我对流星服务器有一些调用,例如

Meteor.call('newMessage', {
      text: self.data.message,
      chatId: $stateParams.chatId,
      userId: CurrentUserService.getUserId()
    });

用于保存新消息,相对于聊天:chatId

【问题讨论】:

  • 请展示一些在开发机器上工作的代码
  • 这与代码无关...与服务器地址有关...它自动假定服务器位于 localhost:3000 .... 但是如果我将服务器移动到远程计算机上会怎样?我应该把服务器地址放在哪里?
  • 我不是流星专家,但我认为这可能与 ROOT_URL 值有关。启动流星时尝试运行ROOT_URL=YOUR_REMOTE_DOMAIN_HERE meteor。我不确定更改环境变量是否会解决您的问题。也许更熟练的人可以提供更多见解
  • 但我猜那个变量是服务器端的......客户端怎么知道它?

标签: angularjs meteor ionic-framework angular-meteor


【解决方案1】:

我不知道这是否是最好的解决方案...我刚刚发现它有效。可能,如果您使用的是全栈功能(如部署、热代码推送等),我的解决方案就不那么安全了……无论如何,在我的 index.html 中,我手动将 DDP_DEFAULT_CONNECTION_URL 变量设置为我的服务器地址:

<!-- meteor -->
    <script src="assets/libs/meteor/meteor-client-side.bundle.min.js"></script> 
    <script src="assets/libs/meteor/angular-meteor-bundle.js"></script>
    <script src="assets/libs/meteor/meteor-runtime-config.js"></script>                   
    <script>
       SERVER_URL = "http://my_server_domain:3000";
       __meteor_runtime_config__ = {};
       __meteor_runtime_config__.DDP_DEFAULT_CONNECTION_URL = SERVER_URL;
    </script>    

这样我覆盖了默认的localhost:3000

(更多信息here

【讨论】:

    猜你喜欢
    • 2015-08-21
    • 2015-02-28
    • 2016-06-14
    • 2017-06-29
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    相关资源
    最近更新 更多