Hosting Meteor Application - meteor

I am building Meteor application which I want to later publish it on IOS and Android.
My questions are:
1) Is it possible to host my Meteor application on my own Ubuntu server?
2) Because Meteor server and client sides are bundled into one. How will the Mobile versions connect to the server?

Yes. Ubuntu, Debian, and other Linux distributions will work well too.
Over DDP (WebSockets) or XHR, if WebSockets fail to connect. It's the same as in browser, in fact Cordova (which is used in Meteor to build "native" app) is a wrapper around Safari in iOS and Chrome in Android, kind of full-screen/interface-less browser, with bindings to native Swift/Objective-C/Java.

Yes. You can host a Meteor app in all sorts of places including your own server. Galaxy and Digital Ocean are both popular cloud options.
When you build for iOS and/or Android you end up with apps that you can post to the App Store and Google Play. The server code is not bundled into these. Meteor's mobile guide describes how all this works in detail. The server address is configured via the ROOT_URL (docs). Essentially the client has the server's address configured into it so it knows where "home" is. This should obviously not be an IP address since that can change.

Related

Which Linux OS is the most compatible to deploy a meteor app to a domain listening on port 80?

The OS should be a linux OS. Which one would be the most compatible to deploy a meteor app to a domain listening on port 80?
Meteor app has quite a documentation on their official site and offers different methods to deploy your app, either use:
Galaxy, the service built by Meteor Development;
Meteor Up which is a third party open-source tool;
Docker;
Custom deployment;
So I'd suggest to check up their docs: https://guide.meteor.com/deployment.html

Can Meteor-based-ios app access data from my own server?

I'm new to Meteor and made a very simple meteor-based ios app for personal use and interest, which read data from MongoDB provided by Meteor. I have a quick question and I just want to make sure that I am not spending time on meaningless work.
What I have done is "meteor run ios-device", and it works pretty well that under the same network (wifi) the app on ios could read data from the localhost:3000 on laptop (Mac). Also, I have learned that it is easy to deploy a meteor app on my own server, just run "meteor build /path/to/buildFile --architecture..." and move the bundle to the server to set up; however, then I got confused about this: after the app is deployed to a server, is it possible that the app on ios also able to access to that server?
In short words, app ios works fine with localhost, so is there a way to make it works fine with web hosting so that the app does not need to connect to the same network as the host?
Note that I didn't purchase Apple developer account that could release app to AppStore, so I can only use "real machine debugging". Will this disallow me to make app on ios access the data from my own server?
Thanks for any advance!
Update:
I have successfully deployed my project on my own OpenShift server so that I could access it within any networks in browsers. So my point is how do I build an ios app for this project so that I can also access it in iPhone within any network. I have tired run "meteor run ios-device --mobile-server=[my own openshift server]:8000", and when I build the app for deploying I ran this "meteor build ~/some/path --server=[my own openshift server]:8000". This seems does not works. Still waiting for advance!
You are describing one of the main use case of Meteor.
Refer to:
Meteor Guide > Mobile > Configuring your server
Meteor Guide > Mobile > Building for production
To summarize:
When building your Meteor project, if you have ios and/or android platform(s), Meteor will require you to specify the --server option with the URL of the server where your Meteor server bundle will be deployed.
That way, your app will know where to connect to.
Note that you may not need to go through Apple App Store, as long as you do not need to distribute your app. You can simply use the Xcode project (generated by meteor build) to install your app directly on your iPhone.

Can StreamSocketListener host SignalR?

I have a Universal Windows Platform app running on Windows IoT (ARM) that starts up a web server via StreamSocketListener. I'd like to be able to push content to web browsers via SignalR. There's an enormous number of SignalR nuget packages, but it appears that none of them will work in UWP. Is this correct? If so what is my best option for pushing content down to browsers?
For modern web browsers, SignalR would use Web Sockets for bidirectional communication with the client. You can see if your client browser will support Web Sockets at Can I use.
There is an open source project whose specific goal is providing a Web Socket server in a UWP app. I don't have first-hand experience with the project and it's <1.0 but it mentions compatibility with Windows 10 IoT Core so it may be worth exploring. You can find the project on NuGet here: https://www.nuget.org/packages/IotWeb/
On the client, you can then use the WebSocket object in JavaScript to open a connection with your server.

Meteor for non-internet mobile app

I am developing a mobile app for iOS, Android, Windows mobile in Javascript and try to select in between Meteor and Backbone. The app will not include internet connectivity functionality. This app needs to store data on the device, not on a remote server.
I am a newbie in Meteor and have some experience with Backbone, and I am a developer with a strong inclination to having a one tool, ok least minimum number of tools, for deploying to every platform.
I need to write my app in a single code base, and deploy to 3 platforms iOS Android, Windows Mobile.
The Reactive nature and package management of the Meteor attracts me to itself from Backbone.
Is Meteor a suitable tool for developing non-internet connecting mobile apps for those platforms iOS Android, Windows Phone?

how to connect to a web service from windows mobile(when running emulator)

I have as asp.net webserver that I hosted and I went to my mobile application I am building and made a web reference to it.
So it finds it and stuff and now I can access the web methods because of the wsdl generated. However when it tries to connect I get this:
Could not establish connection to network.
So do I have to enable something to make this work?
Take a look at this article. It explains how to setup your mobile device for internet connectivity.
Windows Mobile Emulator and Internet Connectivity
It's been awhile since i have had to do this. Perhaps it is as easy as Matt has suggested, I can remember having a hard time making this work with Windows Vista, Visual Studio 2005 and the Windows Mobile 5.0 Pocket PC Emulator. I've found a couple more articles, hope this helps.
HOWTO: Configure Network in Windows Mobile / PocketPC Device Emulator
Making Emulator to connect to the Network
I have used web services and rest based services via webrequests on the emulator without needing to configure the NE2000 adapters.
Change activesync or WMDC to connect using DMA (in wmdc: mobile device settings | connection settings, then set 'allow connections to one of the following' to DMA)
Then in VS2008, under tools select device emulator manager, and pick the emulator that is running, right click on it and select cradle, this should connect activesync/wmdc to the emulator and provide a network connection that is sufficient to communicate over http with web services.

Resources