این پست به درخواست یکی از اعضا گذاشته شده و این کانال در قبال آن هیچ مسولیتی ندارد.
--------------------
تیم فراپاد از مجموعه داتین همکارانی با تخصص های زیر به صورت حضوری و تمام وقت نیاز دارد :
- Node.js Developer(Mid & Senior)
- React Developer (Mid & Senior)
- Test Engineer(Senior & Mid & Junior)
📩 راههای ارسال رزومه:
✔️ پیام دایرکت لینکدین
✔️ ایمیل [email protected]
محل کار:
پارک فناوری پردیس
مزایای همکاری:
- بیمه تکمیلی
- کار در محیطی حرفه ای و همکاری با افراد متخصص، با تجربه و با انگیزه
- اتاق بازي
- باشگاه ورزشی
- سرویس رفت و آمد به کلیه مناطق تهران
- جشن و هداياي مناسبتي
- صبحانه و ناهار
#فرصت_شغلی #استخدام #developer #engineer #nodejs #reactjs
#testengineer #softwareengineer
--------------------
تیم فراپاد از مجموعه داتین همکارانی با تخصص های زیر به صورت حضوری و تمام وقت نیاز دارد :
- Node.js Developer(Mid & Senior)
- React Developer (Mid & Senior)
- Test Engineer(Senior & Mid & Junior)
📩 راههای ارسال رزومه:
✔️ پیام دایرکت لینکدین
✔️ ایمیل [email protected]
محل کار:
پارک فناوری پردیس
مزایای همکاری:
- بیمه تکمیلی
- کار در محیطی حرفه ای و همکاری با افراد متخصص، با تجربه و با انگیزه
- اتاق بازي
- باشگاه ورزشی
- سرویس رفت و آمد به کلیه مناطق تهران
- جشن و هداياي مناسبتي
- صبحانه و ناهار
#فرصت_شغلی #استخدام #developer #engineer #nodejs #reactjs
#testengineer #softwareengineer
پروتکل gRPC یه راه برای اینه که دو تا برنامه (مثلاً دو تا سرور، یا یه موبایل و یه سرور) بتونن با هم حرف بزنن و داده رد و بدل کنن.
باهاش میتونی خیلی راحت بگی:
«هی سرور! این تابع رو با این ورودی اجرا کن و نتیجه رو برگردون.»
خیلی شبیه به REST یا API های HTTP هست، ولی:
- سریعتره (چون از HTTP/2 و باینری استفاده میکنه)
- کمحجمتره (به جای JSON از protobuf استفاده میکنه)
- قراردادیتره (یه فایل proto مینویسی که مشخص میکنه درخواست و پاسخ چه شکلیه)
مزایای gRPC:
سریع
کمحجم
چندزبانه (جاوا، پایتون، Go، جاوااسکریپت و … میفهمنش)
خیلی خوب برای میکروسرویسها
معایب gRPC:
عدم پشتیبانی مستقیم توسط مرورگرها
دیباگ و لاگگیری سختتر
نسبتاً جدید و ناشناختهتر
نیاز به ساختن فایل proto و generate کردن کد
مثال با nodejs:
helloworld.proto
server.js
client.js
Run it!
node server.js
node client.js
Server running at https://0.0.0.0:50051
Received request for: Ali
Greeting: Hello, Ali!
#grpc #nodejs
@danceswithcode
باهاش میتونی خیلی راحت بگی:
«هی سرور! این تابع رو با این ورودی اجرا کن و نتیجه رو برگردون.»
خیلی شبیه به REST یا API های HTTP هست، ولی:
- سریعتره (چون از HTTP/2 و باینری استفاده میکنه)
- کمحجمتره (به جای JSON از protobuf استفاده میکنه)
- قراردادیتره (یه فایل proto مینویسی که مشخص میکنه درخواست و پاسخ چه شکلیه)
مزایای gRPC:
سریع
کمحجم
چندزبانه (جاوا، پایتون، Go، جاوااسکریپت و … میفهمنش)
خیلی خوب برای میکروسرویسها
معایب gRPC:
عدم پشتیبانی مستقیم توسط مرورگرها
دیباگ و لاگگیری سختتر
نسبتاً جدید و ناشناختهتر
نیاز به ساختن فایل proto و generate کردن کد
مثال با nodejs:
helloworld.proto
syntax = "proto3";
package helloworld;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
npm init -y
npm install @grpc/grpc-js @grpc/proto-loader
server.js
import grpc from '@grpc/grpc-js';
import protoLoader from '@grpc/proto-loader';
// Load proto file
const packageDefinition = protoLoader.loadSync('helloworld.proto', {});
const proto = grpc.loadPackageDefinition(packageDefinition).helloworld;
// Implement the SayHello RPC
function sayHello(call, callback) {
console.log('Received request for:', call.request.name);
callback(null, { message: `Hello, ${call.request.name}!` });
}
// Start the gRPC server
const server = new grpc.Server();
server.addService(proto.Greeter.service, { SayHello: sayHello });
server.bindAsync('0.0.0.0:50051', grpc.ServerCredentials.createInsecure(), () => {
console.log('Server running at https://0.0.0.0:50051');
server.start();
});
client.js
import grpc from '@grpc/grpc-js';
import protoLoader from '@grpc/proto-loader';
// Load proto file
const packageDefinition = protoLoader.loadSync('helloworld.proto', {});
const proto = grpc.loadPackageDefinition(packageDefinition).helloworld;
// Create client
const client = new proto.Greeter('localhost:50051', grpc.credentials.createInsecure());
// Make request
client.SayHello({ name: 'Ali' }, (err, response) => {
if (err) {
console.error(err);
return;
}
console.log('Greeting:', response.message);
});
Run it!
node server.js
node client.js
Server running at https://0.0.0.0:50051
Received request for: Ali
Greeting: Hello, Ali!
#grpc #nodejs
@danceswithcode