|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Всем доброго дня ! Я пару дней смотрю в сторону этого зверя... Есть здесь на форуме наши мампсеры, которые могут подсказать что нибудь по этому поводу ? В двух словах: API Сервер. Естественно на GT.M - рабочий 100% А вот на счет клиента вопрос. Жду чтоб не засорять пост. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2015, 08:53 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
ValeriuЕсть здесь на форуме наши мампсеры, которые могут подсказать что нибудь по этому поводу ? Наш директор мечтает использовать эту связку... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2015, 10:58 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Valeriu, как минимум вот это ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2015, 11:07 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Есть клиент TCP на node.js : Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
Конектится и получаю ответ: Код: javascript 1. 2. 3. 4. 5.
До меня не доходит, как это соединение не разорвать, а чтоб она постоянно была, пока пользователь не закроет ее. (Понятно, здесь в коде явно закрывается по команде.) Но я например хочу еще использовать какие-то функции, вызовы и тд. Как-то мне трудно приходится все это осилить, когда всю жизнь кодил на М да еще на Васик ... Это обьявить бы модально, но как- не мого понять... Для чего это было хорошо: Написать буквально ПАРУ ФУНКЦИЙ и можно перевернуть горы. Какие клиентские приложения WEB-кие получались бы !... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2015, 11:46 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
ValeriuКак-то мне трудно приходится все это осилить, когда всю жизнь кодил на М да еще на Васик ... Это обьявить бы модально, но как- не мого понять... Качай книжку "Node.js в действии" http://rus-torrents.com/viewtopic.php?t=58707&view=newest http://nnm-club.me/forum/viewtopic.php?t=835064 Там примеры есть. Правда она не все рабочие... Но подправить можно. Как все установить на дабы попробовать - на Ангулар есть пошаговая инструкция. http://angular-doc.herokuapp.com/tutorial ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2015, 13:32 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Вот пример сервера для чата Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2015, 13:33 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
krvsa, Сервер не нужен. Он есть на GT.M стороне. Меня интересует создание клиентских функций для сокета node.js Вроде что-то нащупал. connect.js Код: javascript 1. 2. 3. 4. 5. 6. 7. 8.
xecute.js Код: javascript 1. 2. 3. 4. 5. 6. 7. 8.
функцию с возвратом пока не могу запускать ... А книжки читаемс ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2015, 14:21 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
ValeriuСервер не нужен. Он есть на GT.M стороне. Значит у нас разное понимание тех серверов... В Кащее работает связка ИИС+CSP... При использовании Node.js нужен сервер аналогичный CSP. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2015, 15:42 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Valeriu, давайте немного уточним: NodeJS (например, модуль express) будет "сервером" для браузера пользователя. И для обработки некоторых его (браузера) запросов, NodeJS будет вызывать (через модуль net) ваш API сервер на GT.M , так? Учитывая природу web, есть ли смысл держать постоянное соединение с GT.M? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2015, 18:30 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
doublefint, Я немножко по другому это представляю. В чем замысел этой затеи ? На линукс сервер установлен gt.m Там же, установлен node.js. Через демон xinetd, запускаю некое СЕРВЕРНОЕ приложение(рутину) на gt.m, которое слушает соединение на порту 6969 и в зависимости, что получает от клиента (в нашем случае является КЛИЕНТСКОЕ TCP приложение node.js на этом же сервере, заметьте - не СЕРВЕРНОЕ !) отправляет обработанные данные М рутины, в некоторой клиентской функции node.js. Дальше, делаем что хотим с этими данным из этой функции. Отображаем например на web странице ! Сумбурно, но где-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2015, 19:32 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Valeriu, насколько я понял теперь, вопрос у вас в организации кода на NodeJS? Т.е., что (как) написать в обработчике client.on('data', function( data ){ ... }), чтобы реализовать собственный протокол обмена с сервером API? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2015, 21:42 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
doublefint, Да. Совершено верно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2015, 22:00 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Valeriu, тогда нам надо переходить на другую ветку форума. Ибо общение с tcp-сервером GT.M будет отличаться от общения с любым другим tcp-сервером только порядком обмена и передаваемыми значениями. Но, как концепт как-то так Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2015, 22:47 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
doublefint, Спасибо огромное ! Сейчас только разобраться еще как этот модуль запустить... Я полный чайник в JS, но стараюсь... ;) В смысле вызвать по отдельности функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 07:47 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Valeriu, Запуск Код: javascript 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 08:22 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
doublefint, я написал на почту, но что-то вернуло с ошибкой ящик тот что указан здесь ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 08:54 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Valeriu, теперь - да ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 08:59 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
doublefint, Получили что-то на почту ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 09:15 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Вставлю 2 коп, хоть и не GT.M-щик. Если NodeJS и M-СУБД находятся на одном сервере, привлекательной с т.з. производительности становится "прямая" связь между ними, которую обеспечивает call-in. Обратили ли вы внимание на NodeM ? Утверждается, что он совместим по API с cache.node (снизу вверх, конечно). Мои коллеги используют cache.node в разработках, впечатления хорошие. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 11:58 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Alexey MaslovВставлю 2 коп, хоть и не GT.M-щик. Если NodeJS и M-СУБД находятся на одном сервере, привлекательной с т.з. производительности становится "прямая" связь между ними, которую обеспечивает call-in. Обратили ли вы внимание на NodeM ? Утверждается, что он совместим по API с cache.node (снизу вверх, конечно). Мои коллеги используют cache.node в разработках, впечатления хорошие. Раз зашла речь - то кто может прокомментировать исходник? https://github.com/dlwicksell/nodem/blob/master/src/v4wNode.m В нем есть после меток двоеточия. Что это означает в GT.M? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 12:25 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
ну я, не без труда нашёл в их док-ии : Labels ... In GT.M, a colon (:) delimiter may be appended to the label, which causes the label to be treated as "local." Within the routine in which they appear, they perform exactly as they would without the trailing colon but they are available only during compilation and inaccessible to other routines and to indirection or XECUTE. Because references to local labels preceding their position in a routine produce a LABELUNKNOWN error at run-time, FIS recommends omitting the routinename from labelrefs to a local label. Using local labels reduces object size and linking overhead for both all types for dynamic linking except indirection and XECUTE. Use of local labels may either improve or impair performance; typically any difference is modest. The more likely they are to all be used within the code block at run-time, the more likely an improvement. In other words, conditional code paths which prevent all references to local variables appearing in the block may actually impair performance. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 12:53 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Я получил эти данные на клиентской стороне со стороны сервера GT.M примерно за 2 min. 30 sec. ,( т.е. 2 000 000 строк ) используя TCP client Node.jstest(var1,var2,var3,Ret) ;;Compilation tools WinBuilder s ^v1=var1,^v2=var2,^v3=var3 s var1="Variable v1",var2="Variable v2",var3="Variable v3" f i=1:1:2000000 s Ret(i)="Array test string nr. "_i_" var1="_var1_" var2="_var2_" var3="_var3_$c(13,10) q "GT.M <Q> Return "_iСервер обычная машина - Intel(R) Celeron(R) CPU G1610 2.60GHt RAM 16 Mgb Интересно, это хороший результат или нет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2015, 16:58 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Забыл уточнить. И клиент и сервер находятся на одной машине, т.е. 2 в одном. Эти данные я увидел в логи js через терминал Putty. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2015, 18:38 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
тривиально, чз VPN из дому - 2 мин . Ровно ... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2015, 20:08 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Здравствуйте ! Кто может подсказать по поводу отображения данных на странице при помощью Node js ? Наблюдаю такую ситуацию: При поступления первого события со стороны клиента (страница WEB), GT.M записывает возвращает некоторые данные - все ОК. При повторном некоторых изменения на клиенте, GT.M записывает данные, но при возврате, отображаются старые значения. Перезагрузка страницы помогает решить вопрос, но хочется без этого ... Я теряю $job.. Спасибо. test(var1,var2,var3,Ret) ;;Compilation tools WinBuilder :[02.10.2015 09:45:36] s ^v1=var1,^v2=var2,^v3=var3 s name=var2 s var1="Now Runing Job: "_$job,var2="Variable v2",var3="Variable v3" f i=1:1:50 s Ret(i)="Array test string nr. "_i_" var1="_var1_" var2="_name_" var3="_var3_$c(13,10) q "GT.M Q Return "_i var http = require('http'), querystring = require('querystring'), utils = require('util'); client = require('/home/node/client'); http.createServer(function (req, res) { // set up some routes switch(req.url) { case '/': // show the user a simple form console.log("[200] " + req.method + " to " + req.url); res.writeHead(200, "OK", {'Content-Type': 'text/html'}); res.write('<html><head><title>Hello Noder!</title></head><body>'); res.write('<h1>Welcome Noder, who are you?</h1>'); res.write('<form enctype="application/x-www-form-urlencoded" action="/formhandler" method="post">'); res.write('Name: <input type="text" name="username" value="Valeriu Gontia" />'); res.write('Age: <input type="text" name="userage" value="56" />'); res.write('<input type="submit" />'); res.write('</form></body></html'); res.end(); break; case '/formhandler': if (req.method == 'POST') { console.log("[200] " + req.method + " to " + req.url); var fullBody = ''; req.on('data', function(chunk) { // append the current chunk of data to the fullBody variable fullBody += chunk.toString(); }); req.on('end', function() { client.connect(); var ret = ''; client.doFunction('test^nodejs', 'test12', fullBody,'test123', ret); console.log("mvar " + client.m_var[4]); // request ended -> do something with the data res.writeHead(200, "OK", {'Content-Type': 'text/html'}); // parse the received body data var decodedBody = querystring.parse(client.m_var[4]); // var decodedBody = querystring.parse(fullBody); // output the decoded data to the HTTP response res.write('<html><head><title>Post data</title></head><body><pre>'); res.write(utils.inspect(decodedBody)); res.write('</pre></body></html>'); res.end(); }); } else { console.log("[405] " + req.method + " to " + req.url); res.writeHead(405, "Method not supported", {'Content-Type': 'text/html'}); res.end('<html><head><title>405 - Method not supported</title></head><body><h1>Method not supported.</h1></body></html>'); } break; default: res.writeHead(404, "Not found", {'Content-Type': 'text/html'}); res.end('<html><head><title>404 - Not found</title></head><body><h1>Not found.</h1></body></html>'); console.log("[404] " + req.method + " to " + req.url); } }).listen(8124); // listen on tcp port 8124 (all interfaces) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2015, 09:20 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Судя по всему срабатывает кеш где то, между node.js и браузером еще кто-то есть, кто может кешировать ? да тот же прокси, может делать так нужно поставить запрет кеширования в заголовках Код: plaintext 1. 2.
Код: javascript 1. 2. 3.
подробнее можно тут почитать ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2015, 10:11 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Valeriu, Для gt.m отлично подходит шлюз mgwsi, взаимодействующий с php скрипт. Пишем в script.php типа Код: php 1.
Данные из gt.m идут потоком через write !!! php скрипт можно на стороне сервера привязать как к Apache, так и вызывать через shell Код: php 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2015, 13:53 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
kalin Данные из gt.m идут потоком через write !!! Один к одному - такой же подход. Разница только в том, что ВСЕ должно крутиться на Linux + GT.M + Node.js WEB клиент приложение уже без разницы.. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2015, 15:09 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Valeriu, Если бы я использовал node.js, то рассмотрел бы вот эту технологию EWD.js http://ec2.mgateway.com/ewd/ws/index.html ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2015, 16:14 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
kalin, Это понятно. Хочется что нибудь по проще и побольше классического М. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2015, 08:31 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
Valeriu, а перепишите-ка, если хотите, вот этот файл boobst.m под GT.M, может быть Вам пригодится. В проекте и set'ы и get'ы и order'ы есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2015, 18:00 |
|
[gt.m] Node.js
|
|||
---|---|---|---|
#18+
не рубящий в кашепод GT.M, может быть Вам пригодится. В проекте и set'ы и get'ы и order'ы есть. Спасибо. Скачал. Даже удивлен, такой же подход только для Каше... Я тоже использую M/Wire со своими доработками : Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2015, 08:36 |
|
|
start [/forum/topic.php?all=1&fid=39&tid=1556585]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
10ms |
get forum data: |
4ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 335ms |
total: | 515ms |
0 / 0 |