All Projects → lamhieu-vk → hypersubs

lamhieu-vk / hypersubs

Licence: MIT license
an upgraded version of Meteor subscribe, which helps optimize data and performance!

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to hypersubs

meteorman
A DDP client with GUI (The Postman for Meteor)
Stars: ✭ 51 (+292.31%)
Mutual labels:  meteor, meteorjs, ddp, ddp-client
meteor-subscription-scope
Scope queries on collections to subscriptions
Stars: ✭ 20 (+53.85%)
Mutual labels:  meteor, meteor-package, ddp
Meteor-flow-router-title
Change document.title on the fly within flow-router
Stars: ✭ 23 (+76.92%)
Mutual labels:  meteor, meteor-package, meteorjs
Meteor-Template-helpers
Template helpers for Session, logical operations and debug
Stars: ✭ 35 (+169.23%)
Mutual labels:  meteor, meteor-package, meteorjs
svelte-meteor-data
Reactively track Meteor data inside Svelte components
Stars: ✭ 14 (+7.69%)
Mutual labels:  meteor, meteor-package, meteorjs
meteor-control-mergebox
Control mergebox of publish endpoints
Stars: ✭ 28 (+115.38%)
Mutual labels:  meteor, meteor-package, ddp
Meteor-logger-file
🔖 Meteor Logging: Store application log messages into file (FS)
Stars: ✭ 24 (+84.62%)
Mutual labels:  meteor, meteor-package, meteorjs
flow-router
🚦 Carefully extended flow-router for Meteor
Stars: ✭ 191 (+1369.23%)
Mutual labels:  meteor, meteor-package, meteorjs
Meteor-logger-mongo
🍃 Meteor Logging: Store application log messages in MongoDB
Stars: ✭ 20 (+53.85%)
Mutual labels:  meteor, meteor-package, meteorjs
Meteor-logger
🧾 Meteor isomorphic logger. Store application logs in File (FS), MongoDB, or print in Console
Stars: ✭ 51 (+292.31%)
Mutual labels:  meteor, meteor-package, meteorjs
awesome-blaze
🔥A curated list of awesome things related to Blaze
Stars: ✭ 29 (+123.08%)
Mutual labels:  meteor, meteor-package, meteorjs
Meteor-Cookies
🍪 Isomorphic bulletproof cookie functions for client and server
Stars: ✭ 41 (+215.38%)
Mutual labels:  meteor, meteor-package
react-meteor
Meteor Reactivity for your React application, inspired by react-native-meteor.
Stars: ✭ 16 (+23.08%)
Mutual labels:  meteor, ddp
MeteorCandy-meteor-admin-dashboard-devtool
The Fast, Secure and Scalable Admin Panel / Dashboard for Meteor.js
Stars: ✭ 50 (+284.62%)
Mutual labels:  meteor, meteorjs
Client-Storage
🗄 Bulletproof persistent Client storage, works with disabled Cookies and/or localStorage
Stars: ✭ 15 (+15.38%)
Mutual labels:  meteor, meteor-package
setup-meteor
Set up your GitHub Actions workflow with a specific version of Meteor.js
Stars: ✭ 17 (+30.77%)
Mutual labels:  meteor, meteorjs
unity3d-ddp-client
Lightweight DDP client for Unity3D
Stars: ✭ 18 (+38.46%)
Mutual labels:  meteor, ddp
meteorpp
Meteor DDP & Minimongo implementation in C++.
Stars: ✭ 22 (+69.23%)
Mutual labels:  meteor, ddp
meteor-two-factor
🔐 Two factor authentication package for accounts-password
Stars: ✭ 80 (+515.38%)
Mutual labels:  meteor, meteor-package
meteor-reactive-mongo
Reactive server-side MongoDB queries
Stars: ✭ 14 (+7.69%)
Mutual labels:  meteor, meteor-package

Hypersubs

github issues build status

An upgraded version of Meteor subscribe, which helps optimize data and performance!

Why hypersubs?

This is the overwritten version of Meteor subscribe. It optimizes performance by not create connect sent to the server when it is not needed. Hypersubs only creates one connection for multiple subscriptions when detected it is duplicate (same publication name and params). Hypersubs only make a real connection (for the first time call Meteor.subscribe), since the second times call Meteor.subscribe, they will be optimized reuse the connection is existed!

Installation

read more in atmospherejs

$ meteor add lamhieu:hypersubs

All the rest of the packages are automatically made for you, no need to change anything in your source code!

How it work?

On the page, every time you call Meteor.subscribe, the system will create a subscription and start its workflow, it will send the request to the server, and get back in the message returned from the server. When you call Meteor.subscribe with the same arguments and names in multiple locations, the system creates separate connections, so there is a need for unnecessary connections!

For example:

default

At element A, we call Meteor.subscribe('getData', '_id') and somewhere in the page (many other elements) also call Meteor.subscribe('getData', '_id') each time you call to it the system thing will create a server communication connection! things are not re-used!

with hpersubs

At immortality A, we call Meteor.subscribe('getData', '_id') and somewhere in the page, even if you recall something like that, we only created one communication line with the server. and it is re-used! The server you are working less, the speed of subscribe feedback is returned immediately!

Options

Default options:

const options = {
  isOverride: true, // is override original Meteor.subscribe
}

How to config options?

Default, you can use hypersubs without config but you want custom config you can do this

import { config } from 'meteor/lamhieu:hypersubs';

// if you don't want override original Meteor.subscribe
config.isOverride = false;

Usage

Meteor

Default hypersubs is add to Meteor variable, you can use by call Meteor.hyperSubscribe like Meteor.subscribe!

If set isOverride: true you don't need change any code in your source because Meteor.subscribe will replace by Meteor.hyperSubscribe, and you can call original susbcribe by call Meteor.originalSubscribe

If set isOverride: false when you want use hypersubs you need call Meteor.hyperSubscribe

DDP

Default when if set isOverride: true when you call DDP.connect(url) to create new connection, it will return a connection wrapped by hypersubs (called by hyperConnection), DD.subscribe inside DDP is a hyperSusbcribe.

Check

To check a connection is wrapped by hypersubs

// DDP
const ddp = DDP.connect(url);
if (ddp.isHyperConnection) {
  // is hyperConnection
}

// Meteor
const subscribe = Meteor.subscribe; // or DDP.subscribe
if (subscribe.isHyperSubscribe) {
  // is hyperSubscribe
}

// Handle
const handle = Meteor.subscribe('publicationName', 'test'); // or
const handle = Meteor.hyperSubscribe('publicationName', 'test');
if (handle.isHyperHandle) {
  // is hyperHandle
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].