java.security.AccessControlException: Multithreading in App engine with Basic Scaling - multithreading

I am using GAE for my backend(module created through Android Studio). I added a library that helps in sending FCM messages to FCM Cloud Connection Server but this library spawns threads to handle things which is where I am getting this exception for trying to spawn threads.
Now, I know that TaskQueue API is provided for this purpose but the library is not under my control.
How can I get around problems with using 3rd party libs that use concurrency?

The answer is, You can't, and definitely not in the Google App Engine Standard.
I had to complement my standard GAE App with a Flexible microservice specifically for sending messages.
For anyone searching, here is the ref: GAE Flexible

Related

How to implement Bull-Board and error-handling in a non web server NodeJS application?

To preface I'd like to say I apologize if this question is too general or has been asked before. I'm struggling with some concepts here and truly don't know what I don't know and have no idea where to look. For context, i'm a full stack dev whose experience has mainly been with writing web servers using Node.js. In such applications implementing BullMQ, bull-board and error-handling is fairly straight forward since you can use middlewares and bull-board ships with server framework specific adapters.
Currently I am working on a project written in Node.js and Typescript. It listens to events emitted by the new Opensea Stream package (a socket based application) and accordingly adds jobs to the BullMQ queue. So on startup it connects to the database, connects to the Opensea socket and then acts accordingly to emitted events. In my mind I would classify this as a Job/Worker/Process sort of application. I've had a couple of issues building out this project and understanding how its made and its place in the web application architecture.
Consequently I have come up with a couple of questions:
What are these sort of applications called? I've had a hard time looking up answers for my questions since I don't know what to categorize this application as. When I try to Google 'Node.js Job Application', as expected it gives me links to job postings.
Am I using the wrong tools for the job? Is Node.js only supposed to be used to write web servers and not for such job based applications?
How does error-handling work here? With web servers if an error shows up in the server, the middleware catches the error and sends a response to the client. In such job applications what happens if an error is thrown? Is anything done with the error or is it just logged in errors, is the job reran/cancelled etc?
How do I implement bull-board here to graphically observe my queue? Since i'm not using a web framework here in this application how is the integration done? Is it even possible?
How different are socket based architectures to REST API servers? Is it a completely different use case/style of implementation or can they have the same server architecture and are just different ways of communicating data between processes? Are sockets more for microservices?
Are there any resources or books that detail how these applications are supposed to be built? Any guidance on best practices or architecture would be greatly appreciated.

Signaling mechanism for webRTC using simpleWebRTC js library and backend in django

I am trying to build video conferencing web application where multiple people can join the call and there will be video/audio/data transmission. I researched a lot for this. What i understand is we can achieve this using webRTC protocol. I started doing research for js libraries and i came to know for simpleWebRTC. I want to develop with backend as a django. I tried to run sample demo code from https://www.sitepoint.com/webrtc-video-chat-application-simplewebrtc/. but i am not able to establish connection with socket.io which is simplewebRTC signaling sandbox server.
I tried with node express server as well, but still i got the same error:- net::ERR_FAILED. This error occured in simplewebrtc-with-adapter-js while making connection.
What would be the correct technologies to achieve this type of functionality?
Front-end webRTC libraries:- simplewebRTC/ EasyRTC/ Any else apis?
Signaling mechanism:- What and how can we use to connect with webRTC?
Backend:- Node js/Django?
I still confused with the signaling protocols/STUN/TURN servers as we have to define the servers by our self. simpleWebRTC is not providing that which we can use in production.
Any help would be much appreciated!
I just started a video calling and chat application as well. open-easyrtc, no problems so far, their demo just works after npm install.
As for signaling servers, since I just started I haven't concerned myself much about them but the most I can make out of it is it's used for exchanging information like video metadata, network information, etc. open-easyrtc comes with public STUN and TURN servers, not sure about the limitation especially if you're going to have a lot of users.
It's also possible to deploy your own, I'm looking at learning more about coturn
once I finished developing my application.
You can use simple-peer, a simple library for webrtc. Here is an example project with multiple users project, DEMO.

Handling multiple users and concurrency in Node.JS Apps

I recently developed a Teams Node.JS app for one of my clients. I'm very new to Node development, so I need some help on the following.
The app will be used by hundreds of users. I haven't done anything special to handle concurrency. I use a combination of node and express. Will these two handle concurrency and multi-threading automatically?
The app makes heavy use of Microsoft Graph, and occasionally for no reason at all, graph calls fails with 503 errors. Upon retrying after some time, it starts working again, but this behavior seems repeating off late. What could be the problem?
I've hosted the app on Azure App Service and set it to auto-scale. Is there any other configuration required to handle additional users?

Paradigm for scheduled push notification server

I'm implementing a full backend for a mobile app, and while I am competent implementing mobile apps and simple mode servers, I have never set up the infrastructure for servers, db, etc.
Basically, I require a simple RESTful api server for communication with my app using Node.js, but my app will have schedules notifications throughout the day that the user can set.
Is it better to have just one server (can scale up as needed but no we will not have many users to start) that takes in the api requests and schedules push notifications with a scheduler library of some sort (making sure of course to not block the execution thread too much when this happens), or is it better to have a lambda function that makes another call to another server dedicated towards sending these notifications?
Or is there another standard to doing something similar to this? Im just not sure what the standard is here. I plan on using AWS services fyi.
I couldn't find much help on the web, so any suggestions are extremely helpful and appreciated!
Thanks in advance!

Node.js/SignalR Communication

I got a server running SignalR and another server runing Node.js. I would like these two servers to communicate using SignalR. Is this possible?
I'm thinking I can use the SignalR client javascript library to connect to the SignalR server from Node:js but I can't find any good examples of how to do this.
Well the answer to can you do this is ultimately "yes" because there is nothing proprietary about SignalR communication. It's just variations of HTTP or WebSockets with a custom handshake/message framing protocol for Hubs on top of that.
So the how is the question we'd need to answer. Out of the box SignalR provides a client side JavaScript library based on the jQuery plug-in architecture, but that won't help Node.js. Someone has started a Node.js implementation here on GitHub, but according to the ReadMe it only supports HTTP long polling today. I'm unaware of any other implementations at this time, but obviously you start with that one and fork it to add support for the other transports if you wanted.

Resources