added wss tools 4

This commit is contained in:
2026-06-18 16:12:53 +03:30
parent 2a77c24dcc
commit f44063dbd2
6 changed files with 268 additions and 56 deletions
+17 -11
View File
@@ -205,15 +205,17 @@ INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `de
SELECT 'external_order_api_enabled', 'true', 'فعال‌سازی API سفارش خارجی (get_wallet / order)', 1, 1, 'true + node_client_id + node_shared_secret'
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'external_order_api_enabled' LIMIT 1);
-- WebSocket قیمت (برادکست last/list)
-- هر پروژه دو پورت host: WS_SOCKET_PORT→8080 (لایت‌اسپید /prc/ws) و WS_HTTP_PORT→3000 (لاراول trigger)
-- مثال طباطبایی: socket=2011، http=2012 — مثال رحیمی: socket=2010، http=2009 (هر پروژه جفت خودش)
-- WebSocket قیمت (SSE — last/list از لاراول)
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
SELECT 'wss_enabled', 'true', 'قیمت لحظه‌ای از WebSocket', 0, 1, 'روشن: اپ از wss_path استفاده می‌کند؛ خاموش: polling /api/price/last و /customer/product/list', 'switch'
SELECT 'wss_enabled', 'true', 'قیمت لحظه‌ای (SSE)', 0, 1, 'روشن: اپ به sse_path وصل می‌شود؛ خاموش: polling /api/price/last و /customer/product/list', 'switch'
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'wss_enabled' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
SELECT 'wss_path', '/prc/ws', 'مسیر WebSocket قیمت', 0, 1, 'مسیر روی دامنه اپ — اپ به wss://{دامنه}{این_مسیر} وصل می‌شود. لایت‌اسپید WS Proxy همین مسیر را به wss_socket_port می‌فرستد.', 'text'
SELECT 'sse_path', '/api/price/stream', 'مسیر SSE قیمت', 0, 1, 'GET لاراول — استریم event:last و event:list با payload کامل', 'text'
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'sse_path' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
SELECT 'wss_path', '/prc/ws', 'مسیر WebSocket (منسوخ)', 0, 0, 'منسوخ — از sse_path استفاده کنید', 'text'
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'wss_path' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
@@ -560,10 +562,13 @@ WHERE `key` = 'node_shared_secret';
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'API سفارش خارجی')
WHERE `key` = 'external_order_api_enabled';
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'قیمت لحظه‌ای از WebSocket')
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'قیمت لحظه‌ای (SSE)')
WHERE `key` = 'wss_enabled';
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'مسیر WebSocket قیمت')
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'مسیر SSE قیمت')
WHERE `key` = 'sse_path';
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'مسیر WebSocket (منسوخ)')
WHERE `key` = 'wss_path';
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'هاست trigger وب‌سوکت')
@@ -672,7 +677,7 @@ UPDATE `settings` SET `type` = 'text' WHERE `key` IN (
'payping_start_url', 'payping_verify_url', 'payping_gateway_items', 'payping_fin_url',
'payping_fin_token', 'payping_gateway_item', 'tahesab_host', 'tahesab_token', 'tahesab_db',
'node_client_id', 'node_shared_secret',
'wss_path', 'wss_trigger_host', 'wss_link', 'wss_trigger_path',
'wss_path', 'sse_path', 'wss_trigger_host', 'wss_link', 'wss_trigger_path',
'tahesab_bank_account', 'telegram_bot_token', 'bale_bot_token', 'support_messenger_id', 'referral_limit',
'referral_bonus_amount', 'balance_report_exclude_customer_id', 'metal_type', 'montify_name', 'price_extreme_date',
'default_vc_number', 'liman_token'
@@ -910,7 +915,7 @@ UPDATE `settings` SET `can_edit` = 0 WHERE `key` = 'fee_cash';
-- WebSocket — فقط دیپلوی/SQL (docker / لایت‌اسپید / ws/.env)
UPDATE `settings` SET `can_edit` = 0 WHERE `key` IN (
'wss_enabled', 'wss_path', 'wss_trigger_host', 'wss_http_port', 'wss_socket_port',
'wss_enabled', 'sse_path', 'wss_path', 'wss_trigger_host', 'wss_http_port', 'wss_socket_port',
'wss_link', 'wss_trigger_path', 'tahesab_port'
);
@@ -1021,8 +1026,9 @@ UPDATE `settings` SET `description` = 'پاسخ JSON آخرین سفارش ار
UPDATE `settings` SET `description` = 'شناسه کلاینت برای API سفارش خارجی (هدر X-Client-Id). باید با مقدار تنظیم‌شده در سرویس مقصد یکسان باشد.' WHERE `key` = 'node_client_id';
UPDATE `settings` SET `description` = 'کلید مشترک امضای HMAC برای احراز درخواست‌های API سفارش خارجی. محرمانه نگه دارید.' WHERE `key` = 'node_shared_secret';
UPDATE `settings` SET `description` = 'روشن: API دریافت کیف پول و ثبت سفارش از سرویس فروشگاه خارجی فعال است. نیاز به node_client_id و node_shared_secret دارد.' WHERE `key` = 'external_order_api_enabled';
UPDATE `settings` SET `description` = 'روشن: اپ کاربر به‌جای polling مکرر /api/price/last و /customer/product/list از WebSocket (wss_path) استفاده می‌کند. خاموش: همیشه polling.' WHERE `key` = 'wss_enabled';
UPDATE `settings` SET `description` = 'مسیر WebSocket روی دامنه اپ — اپ: wss://{دامنه}{مسیر}. لایت‌اسپید WS Proxy همین مسیر را به wss_socket_port (container:8080) می‌فرستد. پیش‌فرض: /prc/ws' WHERE `key` = 'wss_path';
UPDATE `settings` SET `description` = 'روشن: اپ به SSE (sse_path) وصل می‌شود و last/list با payload می‌آید؛ خاموش: polling.' WHERE `key` = 'wss_enabled';
UPDATE `settings` SET `description` = 'مسیر GET لاراول برای استریم قیمت — پیش‌فرض /api/price/stream' WHERE `key` = 'sse_path';
UPDATE `settings` SET `description` = 'منسوخ — montzar. از sse_path استفاده کنید.', `is_active` = 0 WHERE `key` = 'wss_path';
UPDATE `settings` SET `description` = 'هاست داخلی برای trigger لاراول — معمولاً 127.0.0.1. آدرس نهایی: http://{این_هاست}:{wss_http_port}{wss_trigger_path}' WHERE `key` = 'wss_trigger_host';
UPDATE `settings` SET `description` = 'پورت host برای HTTP سرویس ws (container:3000). لاراول POST برادکست. لایت‌اسپید External App /prc. هر پروژه پورت جدا — مثال طباطبایی: 2012' WHERE `key` = 'wss_http_port';
UPDATE `settings` SET `description` = 'مرجع دیپلوی: پورت host برای WebSocket (container:8080). لایت‌اسپید /prc/ws و WS_SOCKET_PORT در ws/.env. کد PHP/فرانت نمی‌خواند — مثال طباطبایی: 2011' WHERE `key` = 'wss_socket_port';
+16 -32
View File
@@ -1,38 +1,22 @@
-- به‌روزرسانی تنظیمات WebSocket قیمت (دیپلوی / پروژه‌های موجود)
-- طباطبایی: wss_socket_port=2011، wss_http_port=2012 — هر پروژه جفت پورت خودش
-- مهاجرت WebSocket/montzar → SSE لاراول
-- دیگر نیازی به docker montzar و لایت‌اسپید /prc/ws نیست
UPDATE `settings` SET `value` = 'true', `can_edit` = 0, `is_active` = 1,
`description` = 'روشن: اپ از wss_path استفاده می‌کند؛ خاموش: polling /api/price/last و /customer/product/list'
`title_fa` = 'قیمت لحظه‌ای (SSE)',
`description` = 'روشن: اپ به /api/price/stream وصل می‌شود؛ خاموش: polling /api/price/last و /customer/product/list'
WHERE `key` = 'wss_enabled';
UPDATE `settings` SET `value` = '/prc/ws', `can_edit` = 0, `is_active` = 1,
`title_fa` = 'مسیر WebSocket قیمت',
`description` = 'مسیر روی دامنه اپ — wss://{دامنه}{مسیر}. لایت‌اسپید WS Proxy → wss_socket_port (container:8080)'
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
SELECT 'sse_path', '/api/price/stream', 'مسیر SSE قیمت', 0, 1,
'مسیر GET لاراول برای استریم last/list — پیش‌فرض /api/price/stream',
'text'
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'sse_path' LIMIT 1);
UPDATE `settings` SET `can_edit` = 0, `is_active` = 0,
`title_fa` = 'مسیر WebSocket (منسوخ)',
`description` = 'منسوخ — SSE از sse_path استفاده می‌کند. montzar دیگر لازم نیست.'
WHERE `key` = 'wss_path';
UPDATE `settings` SET `value` = '127.0.0.1', `can_edit` = 0, `is_active` = 1,
`title_fa` = 'هاست trigger وب‌سوکت',
`description` = 'هاست داخلی POST لاراول — http://{این_هاست}:{wss_http_port}{wss_trigger_path}'
WHERE `key` = 'wss_trigger_host';
UPDATE `settings` SET `can_edit` = 0, `is_active` = 1, `type` = 'number',
`title_fa` = 'پورت HTTP trigger وب‌سوکت',
`description` = 'پورت host برای container:3000 — لاراول + لایت‌اسپید External App /prc. طباطبایی: 2012'
WHERE `key` = 'wss_http_port';
UPDATE `settings` SET `can_edit` = 0, `is_active` = 1, `type` = 'number',
`title_fa` = 'پورت WebSocket (مرجع دیپلوی)',
`description` = 'مرجع docker WS_SOCKET_PORT و لایت‌اسپید /prc/ws (container:8080) — کد نمی‌خواند. طباطبایی: 2011'
WHERE `key` = 'wss_socket_port';
UPDATE `settings` SET `value` = '', `can_edit` = 0, `is_active` = 0,
`title_fa` = 'آدرس trigger وب‌سوکت (منسوخ)',
`description` = 'منسوخ — خالی بماند. از wss_trigger_host + wss_http_port استفاده کنید.'
WHERE `key` = 'wss_link';
UPDATE `settings` SET `value` = '/prc/api/trigger-update', `can_edit` = 0, `is_active` = 1,
`title_fa` = 'مسیر trigger برادکست',
`description` = 'مسیر POST لاراول — پیش‌فرض /prc/api/trigger-update'
WHERE `key` = 'wss_trigger_path';
-- پورت‌ها per-project در ws/.env و لایت‌اسپید — مثال طباطبایی: socket=2011، http=2012
UPDATE `settings` SET `can_edit` = 0, `is_active` = 0,
`description` = 'منسوخ — montzar trigger. با SSE دیگر استفاده نمی‌شود.'
WHERE `key` IN ('wss_trigger_host', 'wss_http_port', 'wss_socket_port', 'wss_trigger_path', 'wss_link');