powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / WebSocketd + M
3 сообщений из 3, страница 1 из 1
WebSocketd + M
    #39776581
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня всем .

Недавно на comp.lang.mumps
появилась заметка В. Бантела о работе GT.M + websocketd
По мне, для работы в классическом М-е это очень даже здорово !
Там нечего практически делать - ВСЕ очень просто.

1. Скачать для вашей системы с http://websocketd.com/ бинарный файл,
которому НЕ ТРЕБУЕТСЯ инсталяция.

2. Написать на М самую что не есть простенбкую програмульку (wsoc):
Код: vbnet
1.
2.
3.
4.
5.
6.
wsoc ;;New Routine created and compiled tools "WEB-MEditor for GT.M" 
   ;f  w $h_" - "_$zv,! h 1 
   f i=1:1:10000 d
   . s a(i)="This is test array a 10000 string send to WebSocket in http browser NR. = "_i
   zwr a
   quit


или любую другую на Ваш вкус.

3. Создайте исполнительный bash file (в Каше по моему тоже это можно) zwebsoc.sh
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
#!/bin/bash
cd /usr/gtm63A
gtm_dist="/usr/gtm63A"; export gtm_dist
gtmgbldir="/usr/gtm63A/mumps.gld"; export gtmgbldir
if [ "" = "UTF-8" -o "" = "utf-8" ] ; then
        if [ -e /usr/gtm63A/utf8 ] ; then
                gtm_dist="/usr/gtm63A/utf8"; export gtm_dist
        fi
fi
gtmroutines="/usr/gtm63A"; export gtmroutines
gtm="/usr/gtm63A/mumps -direct"; export gtm
mupip="/usr/gtm63A/mupip"; export mupip
lke="/usr/gtm63A/lke"; export lke
gde="/usr/gtm63A/mumps -r ^GDE"; export gde
dse="/usr/gtm63A/dse"; export dse
PATH=$PATH:$gtm_dist
mumps -run wsoc


и запустите его следующим образом:
Код: vbnet
1.
2.
3.
4.
5.
6.
login as: root
root@192.168.1.111's password:
Last login: Tue Feb 19 20:25:47 2019 from 192.168.1.104
[root@GTM ~]# /usr/gtm63A/websoc/websocketd --port 8090 /usr/gtm63A/zwebsoc.sh
Wed, 20 Feb 2019 08:20:50 +0200 | INFO   | server     |  | Serving using application   : /usr/gtm63A/zwebsoc.sh
Wed, 20 Feb 2019 08:20:50 +0200 | INFO   | server     |  | Starting WebSocket server   : ws://GTM.WEB.server:8090/


4. Создайте html fail (например wsoc.html и поместите его в папку Вашего HTTP сервера) где впишите следующий код :
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' lang='en'>
<meta charset='utf-8'>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="icon" type="image/png" href="/usr/gtm63A/websoc/email.png" />

<title>Home WebSocket</title>
<body id="home_body" >
</head>


<script>
    var ws = new WebSocket('ws://192.168.1.111:8090/');
    ws.onmessage = function(event) {
      console.log('Return MData: ' + event.data); 
    };
  </script>

</html>

   



5. Откройте этот html файл (например для моего Apach) :
http://192.168.1.111:80/websoc.html

Вот и все. Просто.
Модератор: поправил ссылки, чтобы работали правильно
...
Рейтинг: 0 / 0
WebSocketd + M
    #39779254
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используя этот метод, на простенькую машину пустил такой тест:
Код: vbnet
1.
f i=1:1:1000000 s var(i)="Записываем и читаем этот текст командой Xecute nr."_i w var(i)_$c(13,10)


Я получил весь результат на html странице за 15 сек ...
...
Рейтинг: 0 / 0
WebSocketd + M
    #39787058
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu,
Делал еще проще. Cache писало в поток, который ловил php скриптом, а дальше "дело техники".
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / WebSocketd + M
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]