Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 May 20

AG

Alex Grig in NodeUA - JavaScript and Node.js in Ukraine
веб-архив к примеру это гиганстский парсер между прочим делающий весьма полезное дело сохраняющий историю интернета для потомков
источник

IB

Iaroslav Blinkov in NodeUA - JavaScript and Node.js in Ukraine
"Исторически сложившаяся терминология"
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
Знаю
Более того это именно я сегодня начал цепочку василиев)
источник

IB

Iaroslav Blinkov in NodeUA - JavaScript and Node.js in Ukraine
Мы - падальщики, пользуемся доменным Василием и не платим вам?
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
XD
источник

IB

Iaroslav Blinkov in NodeUA - JavaScript and Node.js in Ukraine
Лучше отправлюсь спать, чтобы биллинг не пришел за Василиев
источник

RD

Roma Dovhaliuk in NodeUA - JavaScript and Node.js in Ukraine
Доброе утро! Помогите запустить приложение, не могу догнать как работать с websocket, как мне его  повешать на http сервер и слушать?
источник

RD

Roma Dovhaliuk in NodeUA - JavaScript and Node.js in Ukraine
class App {

 ws = {};
 heartbeat = {};
 ask;
 bid;

 constructor(ask, bid) {
 this.ask = ask;
 this.bid = bid;
 }

 getPublicWsToken = async function () {
   const baseURL = 'https://api.kucoin.com'
   const endpoint = /api/v1/bullet-public
   const url = baseURL + endpoint;
   const result = await axios.post(url, {});
   return result;
 }

 getSocketEndpoint = async function() {
   const r = await this.getPublicWsToken()

   const token = r.data.data.token;
   const instanceServer = r.data.data.instanceServers[0]

   if(instanceServer){
       return ${instanceServer.endpoint}?token=${token}&[connectId=${Date.now()}]
   } else {
     throw Error("No Kucoin WS servers running")
   }
 }

 initSocket = async function () {

   try {
     
     const endpoint = /market/level2:${this.bid},${this.ask};
     const topic = /market/level2:${this.bid},${this.ask};
     const type = 'public';

     let websocket = await this.getSocketEndpoint()
     const ws = new WebSocket(websocket);
     this.ws[topic] = ws;
     console.log(this.ws)
     ws.on('open', () => {
       console.log(topic + ' opening websocket connection... ');
       this.subscribe(topic, endpoint, this.eventHandler);
       this.ws[topic].heartbeat = setInterval(() => (this.socketHeartBeat, 20000, topic));
     })
     ws.on('error', (error) => {
       this.handleSocketError(error);
       console.log(error);
     })
     ws.on('ping', () => {
       return
     })
     ws.on('close', () => {
       clearInterval(this.ws[topic].heartbeat)
       console.log(topic + ' websocket closed...')
     })
   } catch(err) {
     console.log(err)
   }
   
 }

 handleSocketError = function (error) {
 console.log('WebSocket error: ' + (error.code ? ' (' + error.code + ')' : '') +
 (error.message ? ' ' + error.message : ''))
 }

 socketHeartBeat = function(topic) {
   console.log(this.ws)
   let ws = this.ws.topic
   ws.ping()
 }

 subscribe = async function(topic, endpoint, eventHandler) {
   let ws = this.ws[topic]
 
   ws.send(JSON.stringify({
     id: Date.now(),
     type: 'subscribe',
     topic: endpoint,
     response: true
   }))
   
   ws.on('message', eventHandler)
 }

 unsubscribe = async function(topic, endpoint, eventHandler) {
   let ws = this.ws[topic]
   ws.send(JSON.stringify({
     id: Date.now(),
     type: 'unsubscribe',
     topic: endpoint,
     response: true
   }))
   ws.on('message', eventHandler)
 }

 eventHandler = function () {
   console.log('work');
 }
}


const app = new App('BTC','USDT')

app.initSocket();
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Этот код проще выбросить, чем исправить. Чтобы написать вебсокеты, нужно сначала js выучить и асинхронное программирование, потом почитать про чистый код и рефакторинг
источник

RD

Roma Dovhaliuk in NodeUA - JavaScript and Node.js in Ukraine
ну это минус мораль
источник

DH

Dima Haponov in NodeUA - JavaScript and Node.js in Ukraine
есть толковые книги по рефакторингу?
источник

DH

Dima Haponov in NodeUA - JavaScript and Node.js in Ukraine
да унизили!
источник

RD

Roma Dovhaliuk in NodeUA - JavaScript and Node.js in Ukraine
😂😂😂
источник

E

Emelya in NodeUA - JavaScript and Node.js in Ukraine
на дизмораличах
источник

DH

Dima Haponov in NodeUA - JavaScript and Node.js in Ukraine
А кому легко (
источник

DH

Dima Haponov in NodeUA - JavaScript and Node.js in Ukraine
в общем всё изучите что написал тов.архитектор и через пол годика попытаетесь написать сокеты =)
источник

RD

Roma Dovhaliuk in NodeUA - JavaScript and Node.js in Ukraine
работать уже нужно xD
источник

RD

Roma Dovhaliuk in NodeUA - JavaScript and Node.js in Ukraine
а еще прикол что код не я с нуля писал, это кусок кода с библиотеки ))
источник

IK

Ihor Kopyl in NodeUA - JavaScript and Node.js in Ukraine
С кем можно в личке пообщаться на тему свитча из технологии Х в жс/нод? Хочу понять для себя есть ли смысл. Заранее спасибо)
источник

DH

Dima Haponov in NodeUA - JavaScript and Node.js in Ukraine
🤷🏻‍♂️
источник