@konstantin
В запросе нужно указать параметр HTML вместо MarkdownV2
"parse_mode": "HTML"
http://community.bablosoft.com/post/124594
https://core.telegram.org/bots/api#sendmessage
@vanarok said in BAS_API в Node js:
@UserTrue пытался с await , но выдает ошибку синтаксиса
С await будет работать. Скорее всего вы неправильно его добавили
https://community.bablosoft.com/topic/4450/websocket-на-node-js/6
switch (data.message) {
case "plus":
await(new Promise((resolve, reject) => {
BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(1))");
resolve()
}));
break;
case "minus":
await(new Promise((resolve, reject) => {
BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(-1))");
resolve()
}));
break;
default:
}
} else {
}
пробовал так: синхронный код в асинхронном, такое вообще реально?
@vanarok said in BAS_API в Node js:
switch (data.message) { case "plus": await(new Promise((resolve, reject) => { BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(1))"); resolve() })); break; case "minus": await(new Promise((resolve, reject) => { BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(-1))"); resolve() })); break; default: } } else { }пробовал так: синхронный код в асинхронном, такое вообще реально?
Выложите весь код, а лучше тестовый проект, так будет просто быстрее
WebSocket = require('socket.io-client');
var ws = "ws" + [[CHILD]];
var SocksProxyAgent = require('https-proxy-agent');
var endpoint = 'wss://test..ru/';
var options = {
host: [[PROXY]].split(":")[0],
port: [[PROXY]].split(":")[1],
protocol: 'http',
transports: ['websocket'],
}
var agent = new SocksProxyAgent(options);
all_ws[ws] = new WebSocket(endpoint, { agent: agent });
all_ws[ws].on('connect', () => {
all_ws[ws].on('message', (data) => {
if (data.user_login === "User") {
switch (data.message) {
case "plus":
await(new Promise((resolve, reject) => {
BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(1))");
resolve()
}));
break;
case "minus":
await(new Promise((resolve, reject) => {
BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(-1))");
resolve()
}));
break;
default:
}
} else {
}
});
});
тестовый не получится, у него много зависимостей, проще костыль сделать, чем этим заниматься
@vanarok said in BAS_API в Node js:
@Fox
тестовый не получится, у него много зависимостей, проще костыль сделать, чем этим заниматься
Попробуй вот так:
await(new Promise((resolve, reject) => {
WebSocket = require('socket.io-client');
var ws = "ws" + [[CHILD]];
var SocksProxyAgent = require('https-proxy-agent');
var endpoint = 'wss://test..ru/';
var options = {
host: [[PROXY]].split(":")[0],
port: [[PROXY]].split(":")[1],
protocol: 'http',
transports: ['websocket'],
}
var agent = new SocksProxyAgent(options);
all_ws[ws] = new WebSocket(endpoint, { agent: agent });
all_ws[ws].on('connect', () => {
all_ws[ws].on('message', (data) => {
if (data.user_login === "User") {
switch (data.message) {
case "plus":
BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(1))");
resolve()
case "minus":
BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(-1))");
resolve()
default:
}
}
});
});
}));
@vanarok said in BAS_API в Node js:
Я так понимаю тут никак не выкрутится без завершения всего кода node js.
Код node может работать асинхронно, но на сколько я помню он не может асинхронно работать с BAS (запускать функции, изменять переменные при завершённом действии node js)
@dzxt said in BAS_API в Node js:
//функция для установки глобальной переменной типа string из ноды function PSet_string(name,value){ let script = (`PSet(\"basglobal\", \"${name}\", JSON.stringify(\"${value}\"))`); BAS_API(script) } //use PSet_string('NAME','any string')
Это вы к чему?