В приведенном ниже примере показан один из способов выполнения того, чего вы хотите достичь. Поэкспериментировав с ним, вы, по крайней мере, почувствуете, на что это похоже, когда оно работает.
+---------+ +---------+ +---------+
| Receive | | Receive | | Send |
| Browser | | Browser | | Browser |
+----+----+ +----+----+ +----+----+
| | |
| | |
+-------+------+--------------+ +---------+
| | telnet |
| +--------------------------+ CLI |
| | | session |
| | +---------+
+--+---+--+
| Accord | +------------------------+
| Cloud +----+ C/Java/Perl/Python etc |
| Service | | Program Language APIs |
+---------+ +------------------------+
Существует несколько способов установить двунаправленный канал связи между браузером и веб-службой. Например. WebSocket, AJAX и т.д.
В следующем примере браузер отправки ниже отправляет введенный текст при нажатии кнопки отправки.
Когда Браузер получения получает уведомление, он обновляет содержимое браузера значением счетчика и новой текстовой строкой. Он увеличивает счетчик каждый раз, когда получает обновление.
В приведенном ниже коде send.html и receive.html Accord.js устанавливает канал связи между браузером и облачной службой Accord. Браузеры отправки и получения взаимодействуют с облачной службой Accord с помощью ActiveML, гибрида метаязыков JSON и XML.
prompt> cat send.html
<html>
<head>
<title>Accord Software, Inc.</title>
<link rel="icon" href="/favicon.gif"/>
</head>
<body>
<script type="text/javascript" src="http://ac.accord.com/src/Accord.js"></script>
<script type="text/javascript">
var rpc;
function run() {
if (typeof AccordAmlHttpRpc != 'function' ||
typeof checkSessionId != 'function') {
setTimeout(function(){run();}, 100);
return;
}
rpc = new AccordAmlHttpRpc();
}
/*
* Send the text string when 'Click to Send' button is acted upon.
* This ActiveML command will update the string value and any
* sessions that have outstanding 'wait for an update' will unblock
* and receive the update notification.
*/
function sendMessage() {
var elem = document.getElementById("SendMsg");
rpc.call('aml set string Demo.Msg = "' + elem.value + '";');
}
run();
</script>
<br>
Enter text:
<input id="SendMsg" type="text" value="" maxlength="50" />
<button onclick="sendMessage()">Click to Send</button>
</body>
</html>
prompt> cat recv.html
<html>
<head>
<title>Accord Software, Inc.</title>
<link rel="icon" href="/favicon.gif"/>
</head>
<body>
<div id="Page"></div>
<script type="text/javascript" src="http://ac.accord.com/src/Accord.js"></script>
<script type="text/javascript">
var rpc;
var div = document.getElementById('Page');
/*
* Display the string and increment counter.
*/
var count = 0;
function DisplayMsg(s) {
div.innerHTML = count + ': ' + s;
count++;
}
/*
* Event is received as 'ActiveML set string Demo.Msg = "hello, world";'
*/
function RecvMsg(s) {
var eq = s.indexOf(' = ');
/*
* Remove quotes and semico at the end.
*/
s = s.substring(eq+4, s.length-2);
DisplayMsg(s);
}
/*
* DisplayString() is called initially to display the current value
* followed by RecvMsg() for each subsequent update.
*/
function run() {
if (typeof AccordAmlHttpRpc != 'function' ||
typeof checkSessionId != 'function') {
setTimeout(function(){run();}, 100);
return;
}
rpc = new AccordAmlHttpRpc();
/*
* Communication with the back-end service by using
* ActiveML.
*/
rpc.call('aml print string Demo.Msg;', DisplayMsg, RecvMsg);
rpc.call('aml wait for an update to print string Demo.Msg;', 0, 0);
}
run();
</script>
</body>
</html>
Чтобы браузер мог взаимодействовать с Accord Cloud Service, необходимо войти в систему из каждого браузера. Вы можете создать временную бесплатную учетную запись, нажав кнопку входа на сайте ac.accord.com, чтобы опробовать ее. После создания учетной записи вам необходимо подключиться к ac.accord.com через telnet и выполнить следующие действия, прежде чем выполнять какие-либо «отправки» или «получения». В Windows загрузите и используйте PuTTY. В linux/bsd используйте telnet.
prompt> telnet ac.accord.com
Connected to ac.accord.com.
Escape character is '^]'.
Accord ActiveML - Version 1.0.0.0
Copyright (c) 2001-2013, Accord Software, Inc. All rights reserved.
ActiveML Uid: <email>
Password: <password>
Welcome !
aml> create aobject Demo;
aml> create string Demo.Msg;
aml> set string Demo.Msg = "hello, world";
Каждый раз, когда команда set поступает из браузера «отправить» или через интерфейс командной строки telnet, браузеры «получать» будут обновлять свое отображение.
Помимо использования режима telnet CLI, вы также можете взаимодействовать с Accord Cloud Service, используя различные языки программирования, такие как C/C++, Java, Perl, Python и т. д.
Если для этой задачи есть бюджет, возможно, стоит рассмотреть решение на основе подписки. Подписка на облачное решение может быть экономически эффективным решением. (Иногда это может стоить меньше, чем вы тратите на кофе!). Раскрытие информации: я работаю в Accord.
person
Arun Taylor
schedule
20.10.2013