|
Аналог сокета GT.M в Cache
|
|||
---|---|---|---|
#18+
Доброго времени всем. Помогите писать кусочек кода для работы с сокетом по аналогии GT.M в Каше (версия старая 5,0), я не очень силен в сокетах Каше Не пинайте сильно. Код работающий в GT.M: Код: 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.
Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2018, 16:44 |
|
Аналог сокета GT.M в Cache
|
|||
---|---|---|---|
#18+
Я получаю что-то, но очень и очень туманно ... Может подскажите что я делаю не так ??? Примерно такой код: Код: 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.
При инициирование ВЕБ страницы в терминале получаю; Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2018, 15:53 |
|
Аналог сокета GT.M в Cache
|
|||
---|---|---|---|
#18+
Зачем закомментирован GOTO loop ? Было правильно. Структура сокет-сервера: слушаем if словили коннект, job child, передав ему код 5 = открытый сокет (4) + таблицу символов (1) снова слушаем... Кстати, в последних версиях GT.M (начиная с 6.2 вроде) реализуема и рекомендуется та же структура сокет-сервера, что и в Cache. Отпочковывать job-ом слушатель нехорошо, т.к. какое-то время порт при этом не слушается. Была об этом статейка у Fidelity. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 00:00 |
|
Аналог сокета GT.M в Cache
|
|||
---|---|---|---|
#18+
Alexey Maslov, Можете обьяснить, что имеется введу под "открытый сокет (4) + таблицу символов (1)" ? Типа этого ? Код: vbnet 1. 2. 3. 4.
Видно, что-то не правильно получает сокет со стороны nginx здесь: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2018, 14:57 |
|
Аналог сокета GT.M в Cache
|
|||
---|---|---|---|
#18+
Открытый сокет - сокет с открытым tcp-соединением. Код 4 в команде JOB. Кода 16 в 5.0 вроде бы ещё не было. Таблица символов - все локальные переменные процесса. Код 1 в JOB. (Передавать не обязательно). Всё по примеру: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GIOD_tcp#GIOD_tcp_connect_job В Cache 5.0 наверняка были отличия, которых я уже не помню, но и аналогичный пример тоже был, более-менее рабочий, ЕМНИП. Лучше отладить сокет-сервер на простейших примерах, (чтобы и клиент был на COS/mumps), научиться уверенно ловить соединение, потом уже переходить к нюансам nginx. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2018, 17:35 |
|
Аналог сокета GT.M в Cache
|
|||
---|---|---|---|
#18+
Alexey Maslov, <<Лучше отладить сокет-сервер на простейших примерах, (чтобы и клиент был на COS/mumps), научиться уверенно ловить соединение, потом уже переходить к нюансам nginx.>> Этот сокет давно я раскусил на примерах MWire Rob Twid-а ... Работает безупречно ... Код: 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.
Вот вклинить его для общения с nginx никак не могу.. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 18:52 |
|
Аналог сокета GT.M в Cache
|
|||
---|---|---|---|
#18+
Valeriu, Возможно, причина в том, что fastcgi - это двоичный протокол, а в примерах (включая MWire) чаще встречается текстовый. Пишу сейчас в фоновом режиме двоичный сокет-сервер. Гашу разделители (/TER="") и делаю всё сам. Мне проще, т.к. протокол мой собственный. Вам придётся подстраиваться под "чужое": скорее всего читать length#N, распаковывать длину, потом читать message#lengthUnpacked. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 11:45 |
|
Аналог сокета GT.M в Cache
|
|||
---|---|---|---|
#18+
Alexey Maslov, Вроде вклинил ... Заработал. Все с ВЕБ страницы получаю в каше, сформировал даже при вызове рутины - глобаль ^mTEMP. Осталось из него $order-м выбирать и обратно отсылать на ВЕБ страницу и заполнить таблицу. Если получится и обратно, я "победил" ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 12:28 |
|
Аналог сокета GT.M в Cache
|
|||
---|---|---|---|
#18+
Valeriu, рад слышать.глобаль ^mTEMPЛучше ^mtempУникальныйСуффикс, тогда попадёт в нежурналируемую БД CACHETEMP, которая к тому же чистится при [ре]старте Cache. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 13:05 |
|
Аналог сокета GT.M в Cache
|
|||
---|---|---|---|
#18+
Alexey Maslov, <<Лучше ^mtempУникальныйСуффикс,>> Думаю SID ему присвоить. Примерно так работает сокет: Код: 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.
Получилось, заполнил таблицу. Огорчает одно, всегда нужно смотреть на длину строки, передавая клиенту порциями, иначе получаю ошибку "максимальная строка" ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 13:52 |
|
|
start [/forum/topic.php?fid=39&fpage=5&tid=1556256]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
24ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 274ms |
total: | 395ms |
0 / 0 |