-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchat_by_function.html
47 lines (44 loc) · 1.4 KB
/
chat_by_function.html
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
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<style>
div#log{
border: 1px solid;
border-radius: 4px;
min-height: 300px;
}
</style>
</head>
<body>
<form id="form">
<label>message:
<input id="input" type="text" autofocus placeholder="enter to send">
</label>
</form>
<div id="log"></div>
<script src="./js/madoi.js"></script>
<script>
window.addEventListener("load", ()=>{
// Madoiクライアントを作成しサーバに接続する。
// 引数は任意のルームIDとAuthToken。
const m = new madoi.Madoi("chat_by_function_sdkfj2j", "ahfuTep6ooDi7Oa4");
// メッセージの追加処理を実装した関数。
let chat = function(message){
document.getElementById("log").innerHTML += `<div>${message}</div>\n`;
};
// 関数をmadoiに登録する。戻り値は、本来のchat関数の代わりに使用する関数。
// 呼び出すと、呼び出されたことをBroadcastする。
// 内部でレシーバも用意されており、サーバからBroadcastが来れば、本来の関数が呼び出される。
chat = m.registerFunction(chat, {share: {maxLog: 1000}});
// フォームのsubmit時に、chat関数を呼び出す。
document.getElementById("form").addEventListener("submit", e=>{
e.preventDefault();
const input = document.getElementById("input");
chat(input.value);
input.value = "";
});
});
</script>
</body>
</html>