浏览代码

Replace trivial websocket example by a more illustrated one

bel 11 年之前
父节点
当前提交
ee01cf1ca7
共有 2 个文件被更改,包括 0 次插入91 次删除
  1. 0 44
      examples/websocket/docroot/index.html
  2. 0 47
      examples/websocket/websocket.c

+ 0 - 44
examples/websocket/docroot/index.html

@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8" />
-<title>WebSocket Test</title>
-<script language="javascript" type="text/javascript">
-
-  var writeToScreen = function(message) {
-    var div = document.createElement('div');
-    div.innerHTML = message;
-    document.getElementById('output').appendChild(div);
-  };
-  window.onload = function() {
-    var url = 'ws://' + window.location.host + '/foo';
-    websocket = new WebSocket(url);
-    websocket.onopen = function(ev) {
-      writeToScreen('CONNECTED');
-      var message = 'Не всё подчиняется разуму. Но всё подчиняется упорству. ';
-      writeToScreen('SENT: ' + message);
-      websocket.send(message);
-    };
-    websocket.onclose = function(ev) {
-      writeToScreen('DISCONNECTED');
-    };
-    websocket.onmessage = function(ev) {
-      writeToScreen('<span style="color: blue;">RESPONSE: ' + ev.data +
-                    ' </span>');
-      websocket.send('exit');
-    };
-    websocket.onerror = function(ev) {
-      writeToScreen('<span style="color: red; ">ERROR: </span> ' + ev.data);
-    };
-  };
-</script>
-<style> div {font: small Verdana; } </style>
-<h2>Civetweb WebSocket Test</h2>
-
-  <div style="width: 400px; color: #aaa; padding: 1em; ">
-  This page code creates websocket to the URI "/foo",
-  sends a message to it, waits for the reply, then sends an "exit" message.
-  Server must echo all messages back, and terminate the conversation after
-  receiving the "exit" message.
-  </div>
-
-<div id="output"></div>
-</html>

+ 0 - 47
examples/websocket/websocket.c

@@ -1,47 +0,0 @@
-// Copyright (c) 2004-2012 Sergey Lyubka
-// This file is a part of civetweb project, http://github.com/sunsetbrew/civetweb
-
-#include <stdio.h>
-#include <string.h>
-#include "civetweb.h"
-
-static void websocket_ready_handler(struct mg_connection *conn)
-{
-    static const char *message = "server ready";
-    mg_websocket_write(conn, WEBSOCKET_OPCODE_TEXT, message, strlen(message));
-}
-
-// Arguments:
-//   flags: first byte of websocket frame, see websocket RFC,
-//          http://tools.ietf.org/html/rfc6455, section 5.2
-//   data, data_len: payload data. Mask, if any, is already applied.
-static int websocket_data_handler(struct mg_connection *conn, int flags,
-                                  char *data, size_t data_len)
-{
-    (void) flags; // Unused
-    mg_websocket_write(conn, WEBSOCKET_OPCODE_TEXT, data, data_len);
-
-    // Returning zero means stoping websocket conversation.
-    // Close the conversation if client has sent us "exit" string.
-    return memcmp(data, "exit", 4);
-}
-
-int main(void)
-{
-    struct mg_context *ctx;
-    struct mg_callbacks callbacks;
-    const char *options[] = {
-        "listening_ports", "8080",
-        "document_root", "docroot",
-        NULL
-    };
-
-    memset(&callbacks, 0, sizeof(callbacks));
-    callbacks.websocket_ready = websocket_ready_handler;
-    callbacks.websocket_data = websocket_data_handler;
-    ctx = mg_start(&callbacks, NULL, options);
-    getchar();  // Wait until user hits "enter"
-    mg_stop(ctx);
-
-    return 0;
-}