merhaba muritler "use strict"; Object. defineProperty ; const events_1 = require ; const net_1 = require ; const tls = require ; const Receiver_1 = require ; const Transmitter_1 = require ; const RosException_1 = require ; const debug = require ; const info = debug ; const error = debug ; / Connector class responsible for communicating with the routeros via api, sending and receiving buffers. The main focus of this class is to be able to construct and destruct dinamically by the RouterOSAPI class when needed, so the authentication parameters don't need to be changed every time we need to reconnect. / class Connector extends events_1. EventEmitter { / Constructor which receive the options of the connection @param options / constructor { super ; / Connected status / this. connected = false; / Connecting status / this. connecting = false; / Closing status / this. closing = false; this. host = options. host; if this. timeout = options. timeout; if this. port = options. port; if options. tls = ; if } / Connect to the routerboard @returns / connect { if { if { this. connecting = true; if else } } return this; } / Writes data through the open socket @param data @returns / write { for this.transmitter. write ; return this; } / Register a tag to receive data @param tag @param callback / read / Unregister a tag, so it no longer waits for data @param tag / stopRead / Start closing the connection / close { if } / Destroy the socket, no more data can be exchanged from now on and this class itself must be recreated / destroy / Socket connection event listener. After the connection is stablished, ask the transmitter to run any command stored over the pool @returns / onConnect / Socket end event listener. Terminates the connection after the socket is released @returns / onEnd / Socket error event listener. Emmits the error while trying to connect and destroys the socket. @returns / onError / Socket timeout event listener Emmits timeout error and destroys the socket @returns / onTimeout / Socket data event listener Receives the data and sends it to processing @returns / onData } exports. Connector = Connector; bu şekılde kullanıdıgım bır kutuphane var ben burdakı eventlerın ıcınde onTimeout bu kısımdakı olayı yakalamak ıstıyorum bu dılden pek anlamıyorum ama asagıdakı sekılde kodları kullanıyorum const RouterOSAPI = require . RouterOSAPI; Mikrotik=new RouterOSAPI( ); Mikrotik. connect . then => { Mikrotik. write . then => ). catch => ); }). catch => ); şimdi ben burada Mikrotik. connect kullanabılıyorum fakat Mikrotik. onTimeout seklınde kullanamıyorum bunun sebebı nedır => Fonksiyon degıl hatası veriyor. birde ben Mikrotik. write bu fonksiyon kullanabılmek için surekli connectin içindemi kalmam lazım lazz tarafından 30/Nis/20 13:04 tarihinde düzenlenmiştir

Hocam oradaki onTimeOut methodunun ismine bak. Muhtemelen ismini yanlış yazıyorsundur. Mesela socket_on_time_out olabilir, ontimeout olabilir, _onTimeOut olabilir. vs vs. Sorun bundan kaynaklanıyodur. Yok mu rneği hocam kütüphane içinde? Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Anladım. Gelen hatayı da burada paylaşırsan iyi olabilir. Hızlı çzüm olarak, işini grecekse onTimeout oraya yazdıgımda hıcbırsey yakalayamıyorum hocam aldıgım hatalar hep kutuphaneden donen cevaplar ornek Error: no such command at Channel. once (/root/MikroNode/node_modules/node-routeros/dist/Channel. js:69:52) at Object. onceWrapper (events. js:286:20) at Channel. emit (events. js:198:13) at Channel. processPacket (/root/MikroNode/node_modules/node-routeros/dist/Channel. js:116:18) at Object. connector. read (/root/MikroNode/node_modules/node-routeros/dist/Channel. js:98:55) at Receiver. sendTagData (/root/MikroNode/node_modules/node-routeros/dist/connector/Receiver. js:246:17) at process (/root/MikroNode/node_modules/node-routeros/dist/connector/Receiver. js:209:34) at Receiver. processSentence (/root/MikroNode/node_modules/node-routeros/dist/connector/Receiver. js:235:13) at Receiver. processRawData (/root/MikroNode/node_modules/node-routeros/dist/connector/Receiver. js:164:26) at Connector. onData (/root/MikroNode/node_modules/node-routeros/dist/connector/Connector. js:198:23) bu sekılde

Anladım. onTimeout bir event olduğundan bir yerde çağırılabilecek birşey olmaması lazım. fakat bahsettiğim yere console. log yazdığında onTimeout yani zaman aşımı olması durumunda console a xyz yazması lazım. Amacın timeout olduğunda ekstradan birşey yaptırmak ise bence oraya yazılabilir. Diğer türlü zaten onTimeout hiç çağrılmıyordur. Birşey yakalanmamasının nedeni ontimeout un aslında hiç çağrılmaması, bu olayın hiç meydana gelmemesi olabilir mi?

Hocam socketi ya dinlersin yada mesaj gnderirsin. Gnderdiğin mesaj da bir şablon ile gnderilir. Başlığı olur methodun ismi datası vs vs.. Bu durumda dinlerken SocketBey. bakBenSeniDinliyom ;const dataGelirsedeBunuYap=function şeklinde kodlaman gerekiyor. Yani method isimleri birer constant enum artık ne dersen. Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Bağlantıyı sağladıktan sonra onTimeout u çağırmayı denesen. Yani: Mikrotik. connect . then => ); bir de catch kullanmışsın, byle kullandığını bilmiyordum, başında try olması gerekmiyor sanırım değil mi? RockZs tarafından 30/Nis/20 14:03 tarihinde düzenlenmiştir

Bağlantıyı sağladıktan sonra onTimeout u çağırmayı denesen. Yani: Mikrotik. connect . then => ); gene hata verıyor hocam anladıgım kadarıyla bu kutphanenın ıcınde. on kullanarak eventler olusturulmus this. socket. on('error', this. onError. bind ; seklınde adamlar burdan hata olustumu kendılerı anlıyolar, ama ben araya gırıp nasıl anlarım daha ayıkamadım. hata olayıda aslında orda hata yakalamıyor o komut sync calıstıgı ıcın hata olusutrsa oraya gelıyo ıslem olusmass then ıcıne gıdıyor :) en azından o sekılde gordum adamların kodlarından

hocam dedıklerınden asagıdakı kodu anladım. ama yanlıs anladım galiba calısmadı :( Mikrotik. on("onConnect", function ); bu sekılde bu kutuphanade onTimeout olayını nasıl yakalıyabnılırım bılale anlatır gıbı anlatabılırsen sevınırım :)

Anladım. Gelen hatayı da burada paylaşırsan iyi olabilir. Hızlı çzüm olarak, işini grecekse onTimeout