Mercurial
annotate seobeo/tests/seobeo_websocket_test.c @ 146:8e56f800b7e4
Fixed small issues.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Fri, 09 Jan 2026 13:45:29 -0800 |
| parents | cbbf78b17cfa |
| children |
| rev | line source |
|---|---|
|
120
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1 #include "seobeo/seobeo.h" |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2 #include <stdio.h> |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3 #include <stdlib.h> |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4 #include <unistd.h> |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
6 void Test_WebSocket_Echo() |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
7 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
8 printf("\n=== Test: WebSocket Echo Server ===\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
9 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
10 Seobeo_WebSocket *p_ws = Seobeo_WebSocket_Connect("wss://echo.websocket.org"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
11 if (!p_ws) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
12 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
13 printf("Failed to connect to WebSocket server\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
14 return; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
15 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
16 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
17 printf("Connected to WebSocket server\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
18 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
19 const char *test_message = "Hello, WebSocket!"; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
20 printf("Sending: %s\n", test_message); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
21 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
22 if (Seobeo_WebSocket_Send_Text(p_ws, test_message) < 0) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
23 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
24 printf("Failed to send message\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
25 Seobeo_WebSocket_Destroy(p_ws); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
26 return; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
27 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
28 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
29 printf("Waiting for echo response...\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
30 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
31 int attempts = 0; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
32 while (attempts < 100) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
33 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
34 Seobeo_WebSocket_Message *p_msg = Seobeo_WebSocket_Receive(p_ws); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
35 if (p_msg) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
36 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
37 if (p_msg->opcode == SEOBEO_WS_OPCODE_TEXT) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
38 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
39 printf("Received text: %.*s\n", (int)p_msg->length, (char*)p_msg->data); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
40 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
41 else if (p_msg->opcode == SEOBEO_WS_OPCODE_BINARY) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
42 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
43 printf("Received binary data (%zu bytes)\n", p_msg->length); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
44 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
45 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
46 Seobeo_WebSocket_Message_Destroy(p_msg); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
47 break; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
48 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
49 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
50 usleep(10000); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
51 attempts++; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
52 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
53 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
54 if (attempts >= 100) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
55 printf("Timeout waiting for response\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
56 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
57 Seobeo_WebSocket_Close(p_ws, 1000, "Test complete"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
58 Seobeo_WebSocket_Destroy(p_ws); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
59 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
60 printf("WebSocket test completed\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
61 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
62 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
63 void Test_WebSocket_Multiple_Messages() |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
64 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
65 printf("\n=== Test: Multiple Messages ===\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
66 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
67 Seobeo_WebSocket *p_ws = Seobeo_WebSocket_Connect("wss://echo.websocket.org"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
68 if (!p_ws) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
69 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
70 printf("Failed to connect\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
71 return; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
72 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
73 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
74 const char *messages[] = { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
75 "Message 1", |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
76 "Message 2", |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
77 "Message 3" |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
78 }; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
79 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
80 for (int i = 0; i < 3; i++) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
81 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
82 printf("Sending: %s\n", messages[i]); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
83 Seobeo_WebSocket_Send_Text(p_ws, messages[i]); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
84 usleep(100000); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
85 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
86 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
87 printf("Receiving responses...\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
88 int received = 0; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
89 int attempts = 0; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
90 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
91 while (received < 3 && attempts < 200) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
92 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
93 Seobeo_WebSocket_Message *p_msg = Seobeo_WebSocket_Receive(p_ws); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
94 if (p_msg) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
95 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
96 if (p_msg->opcode == SEOBEO_WS_OPCODE_TEXT) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
97 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
98 printf("Response %d: %.*s\n", received + 1, (int)p_msg->length, (char*)p_msg->data); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
99 received++; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
100 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
101 Seobeo_WebSocket_Message_Destroy(p_msg); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
102 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
103 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
104 usleep(10000); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
105 attempts++; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
106 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
107 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
108 printf("Received %d/%d messages\n", received, 3); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
109 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
110 Seobeo_WebSocket_Destroy(p_ws); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
111 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
112 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
113 void Test_WebSocket_Binary_Data() |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
114 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
115 printf("\n=== Test: Binary Data ===\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
116 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
117 Seobeo_WebSocket *p_ws = Seobeo_WebSocket_Connect("wss://echo.websocket.org"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
118 if (!p_ws) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
119 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
120 printf("Failed to connect\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
121 return; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
122 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
123 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
124 uint8 binary_data[] = {0x01, 0x02, 0x03, 0x04, 0x05, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF}; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
125 printf("Sending %zu bytes of binary data\n", sizeof(binary_data)); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
126 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
127 if (Seobeo_WebSocket_Send_Binary(p_ws, binary_data, sizeof(binary_data)) < 0) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
128 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
129 printf("Failed to send binary data\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
130 Seobeo_WebSocket_Destroy(p_ws); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
131 return; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
132 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
133 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
134 int attempts = 0; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
135 while (attempts < 100) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
136 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
137 Seobeo_WebSocket_Message *p_msg = Seobeo_WebSocket_Receive(p_ws); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
138 if (p_msg) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
139 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
140 if (p_msg->opcode == SEOBEO_WS_OPCODE_BINARY) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
141 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
142 printf("Received %zu bytes of binary data: ", p_msg->length); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
143 for (size_t i = 0; i < p_msg->length && i < 16; i++) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
144 printf("%02X ", p_msg->data[i]); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
145 printf("\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
146 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
147 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
148 Seobeo_WebSocket_Message_Destroy(p_msg); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
149 break; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
150 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
151 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
152 usleep(10000); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
153 attempts++; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
154 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
155 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
156 Seobeo_WebSocket_Destroy(p_ws); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
157 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
158 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
159 void Test_WebSocket_Ping_Pong() |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
160 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
161 printf("\n=== Test: Ping/Pong ===\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
162 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
163 Seobeo_WebSocket *p_ws = Seobeo_WebSocket_Connect("wss://echo.websocket.org"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
164 if (!p_ws) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
165 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
166 printf("Failed to connect\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
167 return; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
168 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
169 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
170 printf("Sending ping...\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
171 if (Seobeo_WebSocket_Send_Ping(p_ws, "ping payload") < 0) |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
172 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
173 printf("Failed to send ping\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
174 Seobeo_WebSocket_Destroy(p_ws); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
175 return; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
176 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
177 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
178 printf("Ping sent (pong should be handled automatically)\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
179 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
180 usleep(500000); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
181 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
182 Seobeo_WebSocket_Destroy(p_ws); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
183 } |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
184 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
185 int main() |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
186 { |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
187 printf("=== Seobeo WebSocket Tests ===\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
188 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
189 Test_WebSocket_Echo(); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
190 Test_WebSocket_Multiple_Messages(); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
191 Test_WebSocket_Binary_Data(); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
192 Test_WebSocket_Ping_Pong(); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
193 |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
194 printf("\n=== All Tests Complete ===\n"); |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
195 return 0; |
|
cbbf78b17cfa
[Seobeo][Websocket] Created Web socket client logic.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
196 } |