summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/mongoose/examples/websocket_chat
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/mongoose/examples/websocket_chat')
-rw-r--r--3rdparty/mongoose/examples/websocket_chat/Makefile12
-rw-r--r--3rdparty/mongoose/examples/websocket_chat/index.html98
-rw-r--r--3rdparty/mongoose/examples/websocket_chat/websocket_chat.c83
3 files changed, 0 insertions, 193 deletions
diff --git a/3rdparty/mongoose/examples/websocket_chat/Makefile b/3rdparty/mongoose/examples/websocket_chat/Makefile
deleted file mode 100644
index 780276ef46b..00000000000
--- a/3rdparty/mongoose/examples/websocket_chat/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright (c) 2014 Cesanta Software
-# All rights reserved
-
-PROG = websocket_chat
-CFLAGS = -W -Wall -I../.. -pthread -g -O0 $(CFLAGS_EXTRA)
-SOURCES = $(PROG).c ../../mongoose.c
-
-$(PROG): $(SOURCES)
- $(CC) -o $(PROG) $(SOURCES) $(CFLAGS)
-
-clean:
- rm -rf $(PROG) *.exe *.dSYM *.obj *.exp .*o *.lib
diff --git a/3rdparty/mongoose/examples/websocket_chat/index.html b/3rdparty/mongoose/examples/websocket_chat/index.html
deleted file mode 100644
index 5da84d30775..00000000000
--- a/3rdparty/mongoose/examples/websocket_chat/index.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="utf-8" />
- <title>WebSocket Test</title>
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type="text/css">
- body {
- background-color: #cde; margin: 0;
- padding: 0; font: 14px Helvetica, Arial, sans-serif;
- }
- div.content {
- width: 800px; margin: 2em auto; padding: 20px 50px;
- background-color: #fff; border-radius: 1em;
- }
- #messages {
- border: 2px solid #fec; border-radius: 1em;
- height: 10em; overflow: scroll; padding: 0.5em 1em;
- }
- a:link, a:visited { color: #69c; text-decoration: none; }
- @media (max-width: 700px) {
- body { background-color: #fff; }
- div.content {
- width: auto; margin: 0 auto; border-radius: 0;
- padding: 1em;
- }
- }
-</style>
-
-<script language="javascript" type="text/javascript">
-
- var rooms = [];
- var ws = new WebSocket('ws://' + location.host + '/ws');
-
- if (!window.console) { window.console = { log: function() {} } };
-
- ws.onopen = function(ev) { console.log(ev); };
- ws.onerror = function(ev) { console.log(ev); };
- ws.onclose = function(ev) { console.log(ev); };
- ws.onmessage = function(ev) {
- console.log(ev);
- var m = (ev.data || '').match(/^(\S+) (.+)/);
- if (m[1] == 'id') {
- document.getElementById('my_id').innerText = m[2];
- } else if (m[1] == 'msg') {
- var div = document.createElement('div');
- div.innerHTML = m[2];
- document.getElementById('messages').appendChild(div);
- }
- };
-
- window.onload = function() {
- document.getElementById('send_button').onclick = function(ev) {
- var msg = document.getElementById('send_input').value;
- ws.send('msg ' + msg);
- };
- document.getElementById('room_sel').onchange = function(ev) {
- var roomName = this.value || '?';
- ws.send('join ' + roomName);
- };
- };
-</script>
-</head>
-<body>
- <div class="content">
- <h1>Websocket PubSub Demonstration</h1>
-
- <p>
- This page demonstrates how Mongoose web server could be used to implement
- <a href="http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern">
- publish–subscribe pattern</a>. Open this page in several browser
- windows. Each window initiates persistent
- <a href="http://en.wikipedia.org/wiki/WebSocket">WebSocket</a>
- connection with Mongoose, making each browser window a websocket client.
- Join a room, send messages, and see messages sent by other clients.
- </p>
-
- <p>
- My ID: <b><span id="my_id"></b></span>
- </p>
- <p>
- Join room: <select id="room_sel">
- <option value="">-- select room -- </option>
- <option>A</option>
- <option>B</option>
- </select>
- </p>
-
- <div id="messages">
- </div>
-
- <p>
- <input type="text" id="send_input" />
- <button id="send_button">Send Message</button>
- </p>
- </div>
-</body>
-</html>
diff --git a/3rdparty/mongoose/examples/websocket_chat/websocket_chat.c b/3rdparty/mongoose/examples/websocket_chat/websocket_chat.c
deleted file mode 100644
index 5ba53801017..00000000000
--- a/3rdparty/mongoose/examples/websocket_chat/websocket_chat.c
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright (c) 2013-2014 Cesanta Software Limited
-// $Date: 2014-09-09 17:07:55 UTC $
-
-#include <string.h>
-#include <time.h>
-#include <signal.h>
-#include <stdlib.h>
-#include "mongoose.h"
-
-static int s_signal_received = 0;
-static struct mg_server *s_server = NULL;
-
-// Data associated with each websocket connection
-struct conn_data {
- int room;
-};
-
-static void signal_handler(int sig_num) {
- signal(sig_num, signal_handler); // Reinstantiate signal handler
- s_signal_received = sig_num;
-}
-
-static void handle_websocket_message(struct mg_connection *conn) {
- struct conn_data *d = (struct conn_data *) conn->connection_param;
- struct mg_connection *c;
-
- printf("[%.*s]\n", (int) conn->content_len, conn->content);
- if (conn->content_len > 5 && !memcmp(conn->content, "join ", 5)) {
- // Client joined new room
- d->room = conn->content[5];
- } else if (conn->content_len > 4 && !memcmp(conn->content, "msg ", 4) &&
- d->room != 0 && d->room != '?') {
- // Client has sent a message. Push this message to all clients
- // that are subscribed to the same room as client
- for (c = mg_next(s_server, NULL); c != NULL; c = mg_next(s_server, c)) {
- struct conn_data *d2 = (struct conn_data *) c->connection_param;
- if (!c->is_websocket || d2->room != d->room) continue;
- mg_websocket_printf(c, WEBSOCKET_OPCODE_TEXT, "msg %c %p %.*s",
- (char) d->room, conn,
- conn->content_len - 4, conn->content + 4);
- }
- }
-}
-
-static int ev_handler(struct mg_connection *conn, enum mg_event ev) {
- switch (ev) {
- case MG_REQUEST:
- if (conn->is_websocket) {
- handle_websocket_message(conn);
- return MG_TRUE;
- } else {
- mg_send_file(conn, "index.html", NULL); // Return MG_MORE after!
- return MG_MORE;
- }
- case MG_WS_CONNECT:
- // New websocket connection. Send connection ID back to the client.
- conn->connection_param = calloc(1, sizeof(struct conn_data));
- mg_websocket_printf(conn, WEBSOCKET_OPCODE_TEXT, "id %p", conn);
- return MG_FALSE;
- case MG_CLOSE:
- free(conn->connection_param);
- return MG_TRUE;
- case MG_AUTH:
- return MG_TRUE;
- default:
- return MG_FALSE;
- }
-}
-
-int main(void) {
- s_server = mg_create_server(NULL, ev_handler);
- mg_set_option(s_server, "listening_port", "8080");
-
- signal(SIGTERM, signal_handler);
- signal(SIGINT, signal_handler);
-
- printf("Started on port %s\n", mg_get_option(s_server, "listening_port"));
- while (s_signal_received == 0) {
- mg_poll_server(s_server, 100);
- }
- mg_destroy_server(&s_server);
- return 0;
-}