Meteor server being flooded - meteor

My server is going down again and again. Here are the log from monti apm:
I have an Android App connected to Meteor server.
Meteor version = 1.8.0.2
Server OS = Ubuntu 16.04
Android is using this DDP library:
https://github.com/delight-im/Android-DDP
Though we never updated that library since 3 years, could that be the issue?
Also my server is going down since 2 months, because I updated Meteor from 1.2 to 1.8, could that also be the reason? Is server itself capable of flooding server?

Related

Mock/Simulate ADFS for Dev Environment on Linux (or where windows server is not available)

I am working on a Project to connect Django to ADSF. Based on Online Documentation it seems ADSF is a Windows Server ONLY feature.
Can ASDF be installed on Linux Environment?
IF connection to Windows Server is not available in Dev Environment, is it possible to get some kind of mock server or simulator to test out code (connecting app to ADFS) during Development Stage/.
Yes - Windows Server only.
No - won't run on Linux.
You could have a look at EmbeddedSTS as long as you are happy using WS Fed.

IIS 10 hangs after few connections via SignalR

I ran into problems developing an application (.Net Framework 4.7+) using SignalR (v. 2.2). My IIS (v. 10 on Windows 10 HOME) is hanging after 2 established connections. It hangs completely, so no other site, hosted there, is no longer available.
I trieid to reproduce it on sample project (SignalR Chat). I downloaded it from https://learn.microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr-and-mvc (http://code.msdn.microsoft.com/Getting-Started-with-c366b2f3). Hosted it in IIS. IIS hangs after 2 established connections (2 tab opened, on third tab page opens from cache, but message isn't posted, if force refresh with CTRL+F5, then page not loading at all). I updated the sapmple project to the latest versions of SignalR and OWIN. Same result.
Ok. I took a clean system (Windows 10 PRO), installed IIS there, hosted sample project there. Instead of 2 connections it hangs after 9 websocket connections. I tried to change the transport to LongPolling, and server hangs after 6 connections. Here is noted that on client OS (like WIndows 10) there is a limitation to 10 simultaneous connections. But not 2. Using IISExpress there are no such restrictions.
Checked this question. But there is no CPU usage at all. I tried all the solutions proposed here. No result.
2 simultaneous is extremely low.
It's because you're using a non server version of IIS. Deploy it to a server and it'll be fine.
Similar questions and answers: SignalR: worker process is limited to 10 concurrent requests

Hosting Meteor Application

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.

SignalR not functioning on server

I have a windows service I made through visual studio in c#.
It uses SignalR to connect to a SQl database and receive notifications.
However, when I deploy the service onto the server itself (Windows Server 2008R2), it doesn't function. This server is the server hosting the SQL server too.
This is a SELF-HOSTED SignalR service. It is not using IIS or anything of the like to run. It is packaged as a simple Windows Service. Therefore, it doesn't have issues with typical MVC, IIS hosted apps (such as /signalr/hubs pathing, web.config etc.)
On my development computer, I use the WAN IP of the sql server to connect to its database. When I run it, it does everything it's supposed to and fires off a notification everytime server changes.
On the server itself, the service installs fine, but doesn't fire off any notifications. I left the IP as the WAN IP for developmental services and was planning to change it to localhost, etc. once it works but it does not.
For now, I left the service running on my development computer, and it's working great. I'd really prefer it to be on the server itself though, since that's the computer that will always be online.
Any hints or ideas on why this works on my development computer but not the server?
Thanks!
[Edit]
I'm using Windows 7 with Visual Studio 2013 as my development setup.
The service is running on localhost:2165 (arbitrary port). I am able to access that address via a web browser on the server itself.
You don't state what your development operating system is, but if you are using WebSockets, then you need to have a minimum of Windows 8 or Windows Server 2012.
From the documentation, the supported platforms are (emphasis mine):
Supported server IIS versions
When SignalR is hosted in IIS, the following versions are supported. Note that if a client operating system is used, such as for development (Windows 8 or Windows 7), full versions of IIS or Cassini should not be used, since there will be a limit of 10 simultaneous connections imposed, which will be reached very quickly since connections are transient, frequently re-established, and are not disposed immediately upon no longer being used. IIS Express should be used on client operating systems.
Also note that for SignalR to use WebSocket, IIS 8 or IIS 8 Express must be used, the server must be using Windows 8, Windows Server 2012, or later, and WebSocket must be enabled in IIS. For information on how to enable WebSocket in IIS, see IIS 8.0 WebSocket Protocol Support.

How do I view the Meteor app running on the VM at localhost:3000?

Hi I'm trying to make my first meteor app. I just made an app and have run it. I've also upgraded to latest meteorite and meteor. I just created a new app and have run it.
App running at: http://localhost:3000/
But I cannot view this webpage on my host computer. I'm running meteor on an ubuntu vm.
It was working before I updated meteorite and meteor and installed the iron-router package to an app I'm working on.
check in the console you might have the error as template is not defined, Meteor is not defined etc...
I too was unable to connect to the Meteor App that was being developed on a centos VM.
The followuing worked:
Setup:
Windows 7/8.1 with Following tools installed:
Putty
VMW Workstation
Centos VM (Server or GUI based)
Chrome/Mozilla Browsers
Launch the VM from VMW Workstation
Console into the VM using Putty
Launch the Meteor App. Will show its listening at localhost?3000
Launch a new session of Putty.
Go To SSH-Tunnels - Source: 3000, Destination - Localhost:3000. Save this settings
Connect to the VM with these settings
Launch the browser and and navigate to localhost:3000
Worked for me, hope does for all
As you have determined, the message on the vm regarding localhost:3000 refers to the vm that is running meteor, and localhost on your computer refers to your computer.
The secure fix for this is to create an encrypted tunnel to connect localhost:3000 on your computer to localhost:3000 on the remote computer.
Start the meteor app on the VM so that you get the message about it being ready on localhost:3000
On the local computer open another terminal window and initiate a second connection to the VM with:
ssh -L 3000:localhost:3000 yourUSER#remoteHOST
This assumes you are running Linux. If you are on Windows, look at the options for your SSH client. It may have similar options to create tunnels.
Open a web browser on your local computer and go to http://localhost:3000
The ssh tunnelling software will sense the connection to localhost:3000 on your computer and will connect you to localhost:3000 on the remote, forwarding the data through an encrypted tunnel.
If this seems like a lot of trouble, there are paid developer platforms like http://nitrous.io that can run meteor and have a web based IDE that can simplify this sort of thing for you so you do not need to run the tunnel. Another way to simplify is to not use a remote VM, but install Meteor on the home computer and only copy the code to a VM when it is finished and ready for production.
If you don't want to run on localhost:3000 at all, but on the webserver on port 80, you might check to see if there is an environment variable that switches the code from development mode to production.

Resources