how to know from which device you are logged in - node.js

I just want to know from which device logged in our website and where from (Location)
I'm currently working on azure mobile service API

Per my understanding, Azure mobile service APIs provided functions to approach resources on Azure but collect devices information.
If you want to detect device on website, I think How to detect mobile device and get user agent info send and save that information to database on server, only once maybe the similar thread on SO.
And to get the location of mobile devices on Web apps, I think How web apps ask location of mobile device will be the similar thread.
If you are creating a mobile application, and a Azure Mobile Apps with node.js as a backend for your application. We can create a custom API, and hit the API to send device information and location when your user login the app. For different platform, there are built-in functions in their SDKs to collect devices information and location.

Related

How to call SignalR Service method from web app service

Let's say, I have an enterprise application runs on Azure Web App Service. Among 100+ pages, I have 3-5 pages needs to be served real-time. to benefit from real-time capabilities of Azure SignalR Service, I want to make clients land on my SignalR application (which runs on RignalR Service). But I couldn't find any related example-article about it. How can I invoke a Hub method outside of the code? Any other approach to solve my problem is more than welcome. My main concern here is the performance of real-time pages.
If you have an ASP.NET Core SignalR Server (i.e. you have classes deriving from Hub in your application), you can't directly send messages to clients via the Azure SignalR Service. You'd have to provide an API in your ASP.NET Core application that does that.
Azure SignalR does also support a "serverless" mode in which you don't have a Hub on the server at all. In that model, clients connect directly to the service (instead of first connecting to your app) and then you can send messages to those clients using the REST API. This is a relatively new scenario so there isn't a lot of documentation. There are some blog posts and videos online on the subject, but not a lot of documentation.
If you already have an ASP.NET Core app, I'd suggest doing this by adding a REST API to your own application that allows other services in your application to send messages by calling this API. In the implementation of this API, you can use IHubContext<T> to send the messages.

Best way to get notifications to Angular Client from an Azure hosted Web API

Best way to get notifications to Angular Client from an Azure hosted Web API
I'm creating an app where users can interact on articles. The back-end is asp.net core 2 web api. Front end is nodejs Angular universal app. I've decided to host on azure.
I need to get user notifications from server to the client. So if an user wrote a document and another user liked it, the notification will be sent to the user that wrote it, if the user is running the site.
I know I can achieve this using SignalR or Socket.io, but I was looking for something that azure provides.
Is there anything in azure that I can use, such as Event Hub, Event Grid or NServiceBus where there's already a javascript client that works on the browser, listening on Events?
hi best way notification is azure web job with azure web hook
using web job you can get notification to any devices
for more details please see
enter link description here

App authentication with WebApi on External Servers

We're looking into writing a mobile app for our company and have a concern as to the infrastructure of how the application will connect with our data.
Our current structure for our web applications is as follows:
We have an App server which holds our .NET sites, this is externally facing (obviously)
These .NET sites interact with our API server (which is only accessible by anything on our App server) So this is only internally accessible
A mobile app will not be on our servers, but it will still need to be able to access our API's. What would be the best course of action to be able to still maintain a level of securing our data in our API's while being able to have them externally accessible by a mobile app or any other app that would need data from it?
My initial thoughts would be some sort of API key system, or perhaps API users?
Thanks!
You should encrypt your API with ssl. You can also use an API management solution. There are some open source options such as: http://wso2.com/products/api-manager/ and API Agility https://apigility.org/

Same Table, Notification Hub and server for two apps

We got caught by Microsoft's abandonment of Silverlight and focus on UWP. This has ended up with us having to develop two dually focused apps (UWP and Silverlight), which has left us with two apps that cannot be bundled/packed together. We have therefore decided to have of the apps as a companion app.
Both apps use authentication, at present time it is with Microsoft authentication. The services used for authentication is of the type Azure App Service - Mobile. The services besides authentication also provides interfaces to a notification hub, blob storage and SQL storage.
The question is therefore is it possible to have one App Service - Mobile (not mobileservice), and authenticate two different apps using the same service?
Additionally can the same Notification Hub be used to send notifications towards different apps?
Or is it needed that we create two different services for each application to facilitate the use of authentication and push messages. Then we can link the same database to the two App Service - Mobile ? But this would leave the issue of the notification hubs not having the same registrations ?
I dont think you can have more than one apps connected to one Azure mobile app. You can connect same app on different platforms but not multiple applications for same platform as Mobile app is designed to be an individual app back end.
Check this feedback request.
https://feedback.azure.com/forums/218849-notification-hubs/suggestions/3821272-push-notifications-for-multiple-apps
As answered by product group, the idea behind Mobile App is to be the individual backend. For that, Mobile Apps dashboard should have not one field for the PackageId/..., but two or more to be the backend for a different apps. Every connection between app and external service like a authentication provider or push notification platform is "personalized" - by IDs and password or certificates, or many ways.
I can imagine the scenario when someone would need to connect one backend to different apps, but the Azure Mobile App idea is different. And, as App Service is a service, i think that in the current situation what you want to do is impossible.
an Azure Mobile App consists of the client app and a backend in Azure. There's no stopping you reusing the same backend for more than one app.

Which Azure role should I use?

I'm planning an application that has a mobile app as a front end (and perhaps a web front end also that performs a different purpose). Something like Runkeeper, or Runtastic, if you're familiar with those apps. The mobile device is the primary method of user interaction, and the web site has stats and dashboards that the users can view afterwards.
I would like the main application to reside in Windows Azure. I'm confused about how to architect the application though - should the business logic reside in a web role, or a worker role? If the main user interface is a mobile app, does it connect to the worker role to persist or retrieve data, or to a web role, or neither? I understand a typical scenario where a web role provides a user interface which can persist data directly to storage or pass data to queues or tables to be picked up by worker roles, but the presence of the mobile app throws me off.
Any help? Thanks!
Andy's answer is great, but let me add a different flavor. The only difference between a web role and a worker role is that the web role automatically has IIS turned on and configured. A good rule of thumb is that if you want IIS, use a web role. If you don't want IIS, use a worker role.
For hosting a server component for mobile apps to connect to, I think the simplest thing that would work would be a web role hosting an ASP.NET web application. Web applications can be used for services as well as web front end (HTML) web sites.
ASP.NET MVC and Web API make setting up web services really easy, and it's easy to work with non-HTML data formats, such as JSON or XML. Your mobile app could communicate with the web app using a REST JSON API, or you could use XML/SOAP if you wanted to, or whatever format you want. REST APIs with JSON as the transfer format is probably the most popular at the moment. One way to think about a web app is that it's just a way to send and recieve data from clients. If the client is a web browser, you can serve up your content as HTML pages, or if your client is a mobile app, you can serve up your data as JSON and let the client display it however it needs to. Basically, your web app can be both your web site (HTML), and your "API" for non-web-browser clients.
You can think of worker roles sort of like Windows Services. They are primarily used for doing back-end processing, and things like that. A worker role might provide some capability to host a public facing API, but you would have to manage connections, message pipelines, recycling, and all that yourself; whereas, a web role would have a web server (IIS) provided for you to manage connections, etc. If you are going to introduce things like message queues, it would make sense to have the public facing API be a web role, and the message processing component a worker role. The web app could receive the message from the client via a REST JSON API, and then pass the message off to a queue, where the worker role picks it up. Introducing queues and worker roles makes sense if you have heavy-duty server-side business logic that can be processed in the background without impacting the client.

Resources