mirror of
https://github.com/hanzo-core/hanzo-chat.git
synced 2026-10-30 19:00:43 +00:00
71 lines
1.9 KiB
Plaintext
71 lines
1.9 KiB
Plaintext
doctype html
|
|
html(lang="en")
|
|
head
|
|
title Websockets Echo
|
|
meta(charset="utf-8")
|
|
//- [START form]
|
|
body(data-external-ip=externalIp)
|
|
p Echo demo
|
|
form(id="echo-form")
|
|
textarea(id="echo-text", placeholder="Enter some text...")
|
|
button(type="submit") Send
|
|
|
|
div
|
|
p Response:
|
|
pre(id="echo-response")
|
|
|
|
div
|
|
p Status:
|
|
pre(id="echo-status")
|
|
//- [END form]
|
|
|
|
script(src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js")
|
|
script.
|
|
// [START js]
|
|
$(function() {
|
|
/* The external ip is determined by app.js and passed into the template. */
|
|
var webSocketHost = location.protocol === 'https:' ? 'wss://' : 'ws://';
|
|
var externalIp = $('body').data('external-ip');
|
|
var webSocketUri = webSocketHost + externalIp + ':65080/echo';
|
|
|
|
/* Get elements from the page */
|
|
var form = $('#echo-form');
|
|
var textarea = $('#echo-text');
|
|
var output = $('#echo-response');
|
|
var status = $('#echo-status');
|
|
|
|
/* Helper to keep an activity log on the page. */
|
|
function log(text){
|
|
status.text(status.text() + text + '\n');
|
|
}
|
|
|
|
/* Establish the WebSocket connection and register event handlers. */
|
|
var websocket = new WebSocket(webSocketUri);
|
|
|
|
websocket.onopen = function() {
|
|
log('Connected');
|
|
};
|
|
|
|
websocket.onclose = function() {
|
|
log('Closed');
|
|
};
|
|
|
|
websocket.onmessage = function(e) {
|
|
log('Message received');
|
|
output.text(e.data);
|
|
};
|
|
|
|
websocket.onerror = function(e) {
|
|
log('Error (see console)');
|
|
console.log(e);
|
|
};
|
|
|
|
/* Handle form submission and send a message to the websocket. */
|
|
form.submit(function(e) {
|
|
e.preventDefault();
|
|
var data = textarea.val();
|
|
websocket.send(data);
|
|
});
|
|
});
|
|
// [END js]
|