Vfinity2.0 α
डेवलपर्स

कस्टम TikTok ब्रिज

Vfinity को बिल्ट-इन ब्रिज के बजाय अपने द्वारा चलाए जाने वाले TikTok LIVE कनेक्टर से कनेक्ट करें

जब आप कनेक्ट करते हैं तो Vfinity सामान्य रूप से अपना स्वयं का TikTok हेल्पर शुरू करता है। यदि आप पहले से ही कोई कनेक्टर (जैसे TikFinity या आपके द्वारा लिखा गया कोई कनेक्टर) चलाते हैं, तो Vfinity इसके बजाय उसके WebSocket से TikTok LIVE इवेंट पढ़ सकता है।

बिल्ट-इन ब्रिज (Vfinity)

Vfinity के साथ शुरू होता है और बिना पोर्ट खोले इससे निजी तौर पर बात करता है। यह टूटे हुए LIVE में फिर से शामिल हो सकता है, आपके LIVE शुरू होने की प्रतीक्षा कर सकता है, और प्रत्येक दर्शक की भूमिकाओं की रिपोर्ट कर सकता है।

कस्टम WebSocket (TikFinity या अन्य)

आपके द्वारा चालू रखे जाने वाले WebSocket सर्वर से कनेक्ट होता है। Vfinity इसके द्वारा भेजे जाने वाले किसी भी इवेंट को पढ़ता है, और आपका कनेक्टर तय करता है कि वह LIVE में कैसे और कब शामिल होगा।

आपके इवेंट, अलर्ट, थ्रो, लक्ष्य और लीडरबोर्ड दोनों ही तरह से समान रूप से काम करते हैं। Twitch, Kick और YouTube इस विकल्प से प्रभावित नहीं होते हैं।

अपने कनेक्टर पर स्विच करें

TikTok डिस्कनेक्ट करें

TikTok कनेक्ट रहने के दौरान कनेक्शन का प्रकार लॉक रहता है। पहले सेटिंग्सकनेक्शन में TikTok LIVE कार्ड पर डिस्कनेक्ट करें पर क्लिक करें।

कस्टम WebSocket चुनें

उसी कार्ड पर, उन्नत TikTok कनेक्शन खोलें और कनेक्शन प्रकार को कस्टम WebSocket (TikFinity या अन्य) पर सेट करें।

इसका पता दर्ज करें

अपने कनेक्टर से मेल खाने के लिए WebSocket होस्ट और WebSocket पोर्ट भरें। Vfinity आपको localhost और 21213 से शुरू करता है।

कनेक्ट करें

अपना कनेक्टर शुरू करें, फिर LIVE से कनेक्ट करें पर क्लिक करें। Vfinity ws://host:port से कनेक्ट होता है और सॉकेट खुलते ही रूम को जुड़ा हुआ मान लेता है।

सेटिंग्स › कनेक्शन में TikTok LIVE कार्ड यूज़रनेम रखता है, और उन्नत TikTok कनेक्शन के तहत कनेक्शन प्रकार।

बिल्ट-इन हेल्पर अपना कोई पोर्ट नहीं खोलता है, इसलिए Vfinity में कुछ भी आपके कनेक्टर के पोर्ट के साथ प्रतिस्पर्धा नहीं करता है।

Vfinity आपके कनेक्टर को क्या भेजता है

यदि TikTok यूज़रनेम फ़ील्ड भरा हुआ है, तो Vfinity सॉकेट खुलते ही आपके कनेक्टर से उस LIVE में शामिल होने के लिए कहता है:

{ "command": "connect", "username": "yourname" }

जब आपका कनेक्टर पहले से जानता हो कि कौन सा LIVE पढ़ना है, तो यूज़रनेम खाली छोड़ दें।

उपहार सूची रीफ़्रेश करें पर क्लिक करने से {"command":"getGifts"} भेजा जाता है। एक giftList संदेश के साथ उत्तर दें जिसका data उपहारों की एक सूची हो, प्रत्येक में id, name, diamondCount और imageUrl हो।

आपका कनेक्टर क्या भेजता है

प्रति संदेश एक JSON ऑब्जेक्ट भेजें, जिसमें इवेंट और उसके डेटा का नाम हो:

{
  "event": "gift",
  "data": {
    "uniqueId": "mika_22",
    "nickname": "Mika",
    "profilePictureUrl": "https://example.com/mika.jpg",
    "giftId": 5655,
    "giftName": "Rose",
    "diamondCount": 1,
    "repeatCount": 5,
    "giftType": 1,
    "repeatEnd": true
  }
}

event के स्थान पर type काम करता है। data के बिना एक संदेश स्वयं डेटा के रूप में पढ़ा जाता है। संख्याएँ संख्यात्मक स्ट्रिंग के रूप में भी आ सकती हैं, जिस तरह TikTok बड़े काउंटरों को भेजता है।

eventवे फ़ील्ड जिन्हें Vfinity पढ़ता है
giftदर्शक, giftId, giftName, diamondCount, repeatCount, giftType, repeatEnd, giftPictureUrl
chatदर्शक, comment
likeदर्शक, likeCount, totalLikeCount
follow, shareदर्शक
subscribeदर्शक, subMonth, gifted
questionदर्शक, questionText
envelopeदर्शक, coins, people
roomUserviewerCount
roomStatsfollowerCount, viewerCount, totalLikeCount, title

यह member, social, emote, superFan, battle और goalUpdate को भी उस रूप में समझता है जिस रूप में Vfinity का बिल्ट-इन ब्रिज उन्हें भेजता है। ऐसा इवेंट नाम जिसे यह नहीं जानता, उसे नज़रअंदाज़ कर दिया जाता है।

दर्शक

प्रत्येक दर्शक इवेंट समान फ़ील्ड से शुरू होता है: uniqueId (@handle), nickname, और वैकल्पिक रूप से userId और profilePictureUrl। बिना uniqueId वाला दर्शक "unknown" के रूप में दिखाई देता है।

भूमिका नियमों को काम करने के लिए, true या false के रूप में isModerator, isSubscriber, isSuperFan, isFollower और isOwner में से किसी के साथ एक roles ऑब्जेक्ट जोड़ें, और संख्याओं के रूप में followRole, gifterLevel या teamMemberLevel जोड़ें। जो आप नहीं जानते उसे छोड़ दें: एक गायब भूमिका को अज्ञात माना जाता है, कभी भी गलत नहीं, और जिस नियम को इसकी आवश्यकता होती है वह पास नहीं होता है।

उपहार कॉम्बो

जब दर्शक टैप करता रहता है तो TikTok एक कॉम्बो उपहार (giftType 1) कई बार भेजता है। उन अपडेट को repeatEnd: false के साथ भेजें, फिर repeatEnd: true के साथ एक अंतिम संदेश भेजें। Vfinity केवल अंतिम संदेश पर प्रतिक्रिया देता है, इसलिए 5-Rose कॉम्बो को 5 Rose के रूप में एक बार गिना जाता है। giftType या repeatEnd के बिना, प्रत्येक उपहार संदेश अपने आप गिना जाता है।

आपके कनेक्टर से मिला उपहार किसी अन्य की तरह ही रास्ता लेता है: यह एक इवेंट से मेल खाता है, मॉडल प्रतिक्रिया करता है और अलर्ट दिखाई देता है।

छोटे सर्वर के साथ परीक्षण करें

यह Node.js सर्वर एक कनेक्टर के रूप में कार्य करता है। यह Vfinity द्वारा भेजी गई चीज़ों को प्रिंट करता है और एक चैट संदेश और एक Rose कॉम्बो के साथ उत्तर देता है।

// npm install ws
const { WebSocketServer } = require('ws');

const server = new WebSocketServer({ port: 21213 });

server.on('connection', (socket) => {
  socket.on('message', (raw) => console.log('Vfinity says', raw.toString()));

  const viewer = { uniqueId: 'testviewer', nickname: 'Test Viewer' };
  socket.send(JSON.stringify({ event: 'chat', data: { ...viewer, comment: 'hello' } }));
  socket.send(JSON.stringify({
    event: 'gift',
    data: { ...viewer, giftId: 5655, giftName: 'Rose', diamondCount: 1,
            repeatCount: 5, giftType: 1, repeatEnd: true },
  }));
});

इसे चलाएँ, Vfinity को localhost और 21213 से कनेक्ट करें, और दोनों इवेंट डैशबोर्ड के इवेंट लॉग में दिखाई देते हैं।

बिल्ट-इन ब्रिज की क्या आवश्यकता है

LIVE में अपने-आप फिर से शामिल हों और LIVE शुरू होने का इंतज़ार करें बिल्ट-इन ब्रिज की सुविधाएँ हैं। एक कस्टम कनेक्टर के साथ कार्ड उनके स्थान पर ऐसा बताता है, और स्थानीय API का tiktok.connect उन्हें नज़रअंदाज़ करता है। TikTok से पुनः कनेक्ट करना आपके कनेक्टर पर निर्भर करता है।

यदि कनेक्शन विफल हो जाता है या समय समाप्त हो जाता है, तो जाँचें कि आपका कनेक्टर चल रहा है और आपके द्वारा दर्ज किए गए होस्ट और पोर्ट पर सुन रहा है। Vfinity ऐसे कनेक्शन को छोड़ देता है जो 10 सेकंड के भीतर नहीं खुलता है।

संबंधित