WebSocket DAT

پرش به ناوبری
پرش به جستجو

خلاصه

WebSocket DAT پیام‌های WebSocket را دریافت و تجزیه (Parse) می‌کند.
WebSocketها یک پروتکل ارتباطی دوطرفه، سریع و کارآمد هستند که توسط سرورها و کلاینت‌های وب استفاده می‌شوند. هر پیام دریافت‌شده تجزیه شده و به‌صورت یک ردیف جدید به جدول DAT اضافه می‌شود. این جدول به صورت FIFO (اولین ورودی، اولین خروجی) عمل می‌کند و تعداد خطوط آن به مقدار تعیین‌شده در پارامترها محدود است.

در صورت تمایل، می‌توان یک اسکریپت را برای هر بسته (packet) دریافتی اجرا کرد.
سرورهای WebSocket امن (TLS) نیز پشتیبانی می‌شوند. همچنین اتصال به سایت‌های مختلف WebSocket بدون نیاز به تنظیم دستی هدرها امکان‌پذیر است.

WebSocket DAT پیام‌های وضعیت و خطا را در کنسول متنی TouchDesigner چاپ می‌کند.
این کنسول با تنظیم متغیر محیطی زیر فعال می‌شود:

TOUCH_TEXT_CONSOLE=1

(برای اطلاعات بیشتر: Variables > System Environment Variables در مستندات Derivative)
کنسول متنی در اجرای بعدی TouchDesigner باز خواهد شد.

برای پشتیبانی از SocketIO به SocketIO DAT مراجعه کنید.

همچنین ببینید: TCP/IP DAT

پروژه‌ی نمونه: چت با WebSockets


محتویات

  1. خلاصه

  2. پارامترها – صفحه Connect

  3. پارامترها – صفحه Received Messages

  4. پارامترها – صفحه Common

  5. ورودی‌های اپراتور

  6. کانال‌های Info CHOP
     6.1 کانال‌های اطلاعات DAT مشترک
     6.2 کانال‌های اطلاعات اپراتور مشترک


پارامترها – صفحه Connect

  • Active (active)
    زمانی که روشن باشد، DAT اطلاعات ارسال‌شده به پورت شبکه را دریافت می‌کند.
    زمانی که خاموش باشد، هیچ به‌روزرسانی انجام نمی‌شود و داده‌های ارسال‌شده به پورت از بین می‌روند.

  • Network Address (netaddress)
    آدرس شبکه‌ی کامپیوتر سرور. این آدرس یک آدرس استاندارد وب است، مانند foo یا foo.bar.com.
    می‌توانید از آدرس IP نیز استفاده کنید (مثلاً 100.123.45.78).
    اگر localhost وارد شود، به این معناست که سمت دیگر اتصال روی همان کامپیوتر قرار دارد.

  • Network Port (port)
    پورتی که DAT روی آن پیام‌ها را دریافت می‌کند.
    پورت 443 به معنی اتصال امن است.
    اگر بخواهید از اتصال امن روی پورتی غیر از 443 استفاده کنید، باید پیشوند wss:// را در پارامتر Network Address وارد کنید.

  • Connection Timeout (timeout)
    مدت زمان (بر حسب میلی‌ثانیه) که WebSocket DAT برای اتصال به سرور منتظر می‌ماند.
    توجه: این مقدار سقف زمان است و ممکن است اتصال پیش از رسیدن به این زمان ناموفق شود.


پارامترها – صفحه Received Messages

  • Callbacks DAT (callbacks)
    DAT مربوط به Callbacks برای هر پیام دریافتی یک‌بار اجرا می‌شود.

  • Execute from (executeloc)
    مشخص می‌کند اسکریپت از چه مکانی اجرا شود.

  • From Operator (fromop)
    اپراتوری که تغییر وضعیت آن باعث اجرای اسکریپت DAT می‌شود، زمانی که Execute from روی
    Specified Operator تنظیم شده باشد.
    این اپراتور همچنین مسیری است که اسکریپت از آن اجرا خواهد شد.

  • Clamp Output (clamp)
    به‌طور پیش‌فرض DAT به 100 پیام محدود است، اما با فعال‌سازی Clamp Output می‌توان این مقدار را به هر عددی (حتی نامحدود) تغییر داد.

  • Maximum Lines (maxlines)
    تعداد پیام‌ها را محدود می‌کند؛ پیام‌های قدیمی‌تر زودتر از لیست حذف می‌شوند.

  • Clear Output (clear)
    تمام خطوط به‌جز هدر را حذف می‌کند.
    برای پاک‌سازی از طریق پایتون:

    op("opname").par.clear.pulse()
  • Bytes Column (bytes)
    بایت‌های خام پیام را در یک ستون جداگانه خروجی می‌دهد.


پارامترها – صفحه Common

  • Language (language)
    مشخص می‌کند DAT از کدام زبان اسکریپت استفاده کند.

  • Edit/View Extension (extension)
    پسوند فایلی که DAT برای ویرایشگرهای خارجی نمایش می‌دهد.

  • Custom Extension (customext)
    تعیین پسوند سفارشی.

  • Word Wrap (wordwrap)
    فعال‌سازی شکستن خط (Word Wrap) برای نمایش نود.


ورودی‌های اپراتور

  • Input 0:


کانال‌های Info CHOP

اطلاعات اضافی WebSocket DAT از طریق یک Info CHOP قابل دسترسی است.

کانال‌های اطلاعات DAT مشترک

  • num_rows – تعداد ردیف‌های این DAT

  • num_cols – تعداد ستون‌های این DAT

کانال‌های اطلاعات اپراتور مشترک

  • total_cooks – تعداد دفعاتی که اپراتور از شروع فرآیند Cook شده است

  • cook_time – مدت زمان آخرین Cook بر حسب میلی‌ثانیه

  • cook_frame – شماره فریمی که اپراتور آخرین بار نسبت به تایم‌لاین کامپوننت Cook شده

  • cook_abs_frame – شماره فریمی که اپراتور آخرین بار نسبت به زمان مطلق Cook شده

  • cook_start_time – زمان شروع Cook اپراتور (میلی‌ثانیه) در فریم مربوطه

  • cook_end_time – زمان پایان Cook اپراتور (میلی‌ثانیه) در فریم مربوطه

  • cooked_this_frame – اگر اپراتور در این فریم Cook شده باشد مقدار 1

  • warnings – تعداد هشدارهای اپراتور (در صورت وجود)

  • errors – تعداد خطاهای اپراتور (در صورت وجود)