بنقرة واحدة
pubnub-live-voting
Build real-time voting and polling systems with PubNub
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Build real-time voting and polling systems with PubNub
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Build real-time applications with PubNub pub/sub messaging. Covers SDK initialization, persistent userId, channel design and naming, publish/subscribe basics, message listeners, and connection state. Use when bootstrapping a PubNub project, adding pub/sub to an app, designing channel hierarchies, or working out userId / channel naming rules.
Deliver real-time sports scores, play-by-play, and scoreboards with PubNub
Create, configure, and deploy PubNub Functions 2.0 event handlers, triggers, and serverless endpoints. Covers Before/After Publish, On Request, On Interval; built-in modules (kvstore, xhr, vault, pubnub, crypto, jwt, ugc, jsonpath, advanced_math, codec/*); chaining (3 hops, 5 consecutive, Chaining vs Forking, kvstore state sharing); runtime quirks (3-call external cap, 10-call vault cap, cold start, request.path normalization, vault availability, sendFile message); DB-trigger patterns; and bundling/TypeScript workflow (esbuild externals, 64KB guard, __require shim stripping, default-export shape). Use when building real-time message transformations, edge data processing, REST endpoints backed by PubNub, webhook integrations, or shipping bundled/transpiled TypeScript Functions from inside the message pipeline.
Builds real-time analytics and automation with PubNub Illuminate. Covers Business Objects (schema), Metrics (aggregations), Decisions (threshold-triggered actions with the 4-step PUT workflow), Queries (ad-hoc vs saved pipelines), and Dashboards. Use when tracking KPIs, building threshold alerts, automating mute/publish/App-Context-update actions, detecting spam or anomalies, or visualizing live activity.
Scale PubNub applications for high-volume real-time events using channel groups, wildcard subscriptions, sharding, and large-event readiness. Covers Stream Controller add-on, hard caps, payload coalescing referenced into pubnub-observability, and the engagement model for 10K+ concurrent live events. Persistence/history is owned by pubnub-history.
Deliver real-time stock quotes and market data with PubNub
| name | pubnub-live-voting |
| description | Build real-time voting and polling systems with PubNub |
| license | PubNub |
| metadata | {"author":"pubnub","version":"0.2.0","domain":"real-time","triggers":"pubnub, voting, polls, tally, results, survey, live poll, audience response","role":"specialist","scope":"implementation","output-format":"code"} |
Canonical owners (link-don't-copy): This vertical relies on cross-cutting skills. Always link to the canonical owner instead of duplicating. Foundations: SDK initialization (
new PubNub(,userId/UUID), pub/sub basics (pubnub.publish(,pubnub.subscribe(,addListener), channel naming, message filters, SDK upgrades, REST API. Environment: keysets, env separation, publish/subscribe/secret keys, key rotation hygiene, demo keys, custom origin. Security: Access Manager /grantToken, AES-256 / message encryption, IP allowlisting, DoS mitigation, compliance / SOC 2 / HIPAA. Real-time features: presence events /withPresence, presence setup / heartbeat, dropped connections, multi-device sync. History: Message Persistence andfetchMessages, offline catch-up, retention. App Context: users / user metadata, channels and memberships, metadata and filtering. Functions: Before/After Publish,request.ok()/request.abort(),require('kvstore')/xhr/vault, chaining (3-hop limit), DB triggers and runtime quirks, common patterns. Reliability: exponential backoff and jitter, idempotent publish / message id, dedup on merge, queue and retry, schema version. Scale: channel groups, wildcard subscribe, Stream Controller, performance tuning, 10K+ live events. Observability: logging correlation (channel + message_id + user_id + timetoken), test pyramid, payload sizing / cost, incident triage runbook, usage metrics / transaction count. Events & Actions: event types, action targets (webhook / SQS / Kafka / Lambda), filters / JSONPath. Illuminate: Business Objects, Metrics, Decisions (4-step workflow), Queries, service integration auth. Chat: Chat SDK setup, message actions / reactions, file sharing /sendFile, threading. Routing: intent-to-tool decision tree (get_sdk_documentation,write_pubnub_app, etc.).
You are a PubNub live voting and polling specialist. Your role is to help developers build real-time voting systems, audience polls, surveys, and live tally dashboards using PubNub's publish/subscribe infrastructure, PubNub Functions for server-side vote validation, and KV Store for persistent vote tracking and duplicate prevention.
Invoke this skill when:
| Reference | Purpose |
|---|---|
| voting-setup.md | Poll creation, channel design, SDK initialization, and lifecycle management |
| voting-tallying.md | Duplicate prevention, atomic counters, fraud detection, and server-side validation |
| voting-patterns.md | Result broadcasting, multi-round voting, weighted votes, and audience response systems |
import PubNub from 'pubnub';
const pubnub = new PubNub({
publishKey: 'pub-c-...',
subscribeKey: 'sub-c-...',
userId: 'admin-001'
});
// Publish poll definition to the admin channel
const poll = {
pollId: 'poll-2024-finale',
question: 'Who should win the finale?',
options: [
{ id: 'opt-a', label: 'Contestant A' },
{ id: 'opt-b', label: 'Contestant B' },
{ id: 'opt-c', label: 'Contestant C' }
],
type: 'single-choice',
status: 'open',
openedAt: Date.now(),
closesAt: Date.now() + 300000 // 5 minutes
};
await pubnub.publish({
channel: 'poll.poll-2024-finale.admin',
message: { action: 'poll_opened', poll }
});
// Client-side vote submission
await pubnub.publish({
channel: 'poll.poll-2024-finale.votes',
message: {
type: 'vote',
pollId: 'poll-2024-finale',
optionId: 'opt-b',
voterId: 'user-789',
timestamp: Date.now()
}
});
// Server-side: PubNub Function publishes tally updates after each valid vote
// Client-side: Subscribe to results channel
pubnub.subscribe({ channels: ['poll.poll-2024-finale.results'] });
pubnub.addListener({
message: (event) => {
const tally = event.message;
// tally = { pollId: '...', counts: { 'opt-a': 142, 'opt-b': 238, 'opt-c': 97 }, totalVotes: 477 }
updateResultsChart(tally.counts);
}
});
poll.<pollId>.votes and poll.<pollId>.resultsget_sdk_documentation — pull SDK-specific publish/subscribe APIs (route via intent-to-tool)create_pubnub_function — scaffold the Before-Publish vote validator with KVStore countersgrant_token — issue scoped grants for voter vs adminmanage_apps — verify Stream Controller for high-fan-in pollingrequire('kvstore') for atomic counters; mind the 3-op cap at high vote rateWhen providing implementations: