浏览代码

Example: print message type of websocket messages (see also #486)

bel2125 8 年之前
父节点
当前提交
9f1fbd4843
共有 1 个文件被更改,包括 25 次插入1 次删除
  1. 25 1
      examples/embedded_c/embedded_c.c

+ 25 - 1
examples/embedded_c/embedded_c.c

@@ -644,7 +644,31 @@ WebsocketDataHandler(struct mg_connection *conn,
 	ASSERT(client->conn == conn);
 	ASSERT(client->state >= 1);
 
-	fprintf(stdout, "Websocket got data:\r\n");
+	fprintf(stdout, "Websocket got %lu bytes of ", (unsigned long)len);
+	switch (((unsigned char)bit) & 0x0F) {
+	case WEBSOCKET_OPCODE_CONTINUATION:
+		fprintf(stdout, "continuation");
+		break;
+	case WEBSOCKET_OPCODE_TEXT:
+		fprintf(stdout, "text");
+		break;
+	case WEBSOCKET_OPCODE_BINARY:
+		fprintf(stdout, "binary");
+		break;
+	case WEBSOCKET_OPCODE_CONNECTION_CLOSE:
+		fprintf(stdout, "close");
+		break;
+	case WEBSOCKET_OPCODE_PING:
+		fprintf(stdout, "ping");
+		break;
+	case WEBSOCKET_OPCODE_PONG:
+		fprintf(stdout, "pong");
+		break;
+	default:
+		fprintf(stdout, "unknown(%1xh)", ((unsigned char)bit) & 0x0F);
+		break;
+	}
+	fprintf(stdout, " data:\r\n");
 	fwrite(data, len, 1, stdout);
 	fprintf(stdout, "\r\n\r\n");