Im having issues with setting up GRPC inside Angular Universal App.
Basically, it throws an error:
ERROR Error: This environment's XHR implementation cannot support binary transfer.
This error is breaking the application on production (hosting it on ubuntu and nginx), but, in local envioroment it works.
If I switch Angular to not use SSR, then it works fine.
My assumption is that in the Node Express server I need to add support for GRPC, but im not sure how to achieve that.
Did someone had the same problem?
Thanks!
If no grpc library is defined, adding improbable-eng should solve the issue. The mentioned error message occurs when the transport protocol is not NodeHttpTransport.
Related
I am running the angular application in Microsoft Teams and deploying it on Azure.
But it's not running up as it is looking for the robots933456.txt route.
It wasn’t the case before today.
Please guide me on how to proceed further.
On running the app the logs shows:
The error was natively on my side nothing to do with the above but pretty much seen and raised by people so thought of sharing below:
After doing some research figured out I can safely ignore this message. /robots933456.txt is a dummy URL
the path that App Service uses to check if the container is capable of serving
requests. A 404 response simply indicates that the path doesn't exist, but
it lets App Service know that the container is healthy and ready to respond
to requests.
https://github.com/MicrosoftDocs/azure-docs/issues/32472
I am trying to deploy my loopback service. But I am encountering a problem where i am unable to access it.
When trying to access I get the following error message:
Trace: You required the Node Cluster module, which is incompatible with Passenger, a non-functional shim was returned and your app may still work. However, please remove the related code as soon as possible.
Now I am not 100% sure this is the reason why I am unable to access it but it is not throwing any other messages.
I've already looked into the problem however I haven't found a solution. It seems that loopback uses something called shirtId which is a node module that uses a cluster function.
Removing this node module will result in my application not being able to start.
Has anyone else had this problem and maybe know of a fix?
I have a node client that tries to connect to a Websocket server that is behind an ELB.
Sometimes, the initial connection hangs and does not return, and i was wondering if there's a timeout options in websockets/ws module.
I saw that it's using the native https/http node lib and that lib has a setTimeout method - but it's not being used.
I patched my installed module to use that method and it worked.
Is there another option I'm not aware of? Should I submit a PR?
Thanks!
in case anyone has the same issue, i added this feature in 3.0.1 https://github.com/websockets/ws/commit/b32016995e9620ed6d5826464b2c3ee931e2240a
we are using Meteor + NodeJS application. Meteor application use for communication for client and Nodejs application for connect to DB. We gave the nodeJS application reference in meteor application.
When any un-handled error occurs in nodejs application we are not able to catch it.
We deploy the meteor and nodejs application as a package.
From Meteor we called nodejs methods using Meteor.wrapAsync(node.method1).
we are able to catch the exception in meteor till callback from node method. After callback if any exception occurs in nodejs method we are not able to handle it.
Thanks for your replay
Since there isn't any code presented here, I'm going to assume that you have the following scenario:
You have a Meteor application that calls services that are hosted in a different node server.
The node services are sharing the same database as the Meteor app.
Clients only interact with the Meteor app.
Meteor is using its own embedded node server, so service calls to the other node app is actually a communication between two different node servers, which means that they have their own call stack, hence they can't handle each other's exceptions.
The only way to communicate errors between the two is if you handle the exceptions in the node application and send error codes to the Meteor app. They can be either HTTP codes, if you're using ajax, for example, or your own kind of error codes.
I'm new in microservices ecosystem and I've just start study about gRPC. But I have a problem when I try to understand gRPC and Protobuf workflow.
First, I have a server and a client talk to each other via gRPC with NodeJS. Then I got a problem with my server so I have to fix it. But unfortunately, I have to change protobuf file too because I realize that error come from my gRPC Service.
So, for now I'm change protobuf file in both client and server manually. But I want to change(sync) proto file in client automatically(that's microservices, right?).
Please show me your method to make it auto! :(
The easiest way to automate this by extracting out your .proto file in a separate project and build a pipeline which will generate stub code and publish it to a common place. And then you can use that by adding it as a dependency to your client and server.
But as #Kenton said, you don't have to update your .proto file at the client for all the changes, it's backward compatible by default.