@@ -28,7 +28,7 @@ ambuild
28
28
* [ websocket] ( https://github.com/ProjectSky/sm-ext-websocket/blob/main/scripting/include/websocket/ws.inc )
29
29
30
30
# Binary files
31
- * https://github.com/ProjectSky/sm-ext-websocket/actions
31
+ * [ GitHub Releases ] ( https://github.com/ProjectSky/sm-ext-websocket/releases )
32
32
33
33
## TODO
34
34
- [x] WebSocket server support
@@ -39,139 +39,5 @@ ambuild
39
39
* HTTP functionality is not yet complete. Currently, only basic features are available
40
40
* Server will not process data during the hibernation. You can set sv_hibernate_when_empty to 0 to disable hibernation
41
41
42
- ## Client Example
43
- ``` c++
44
- #include < sourcemod>
45
- #include < websocket>
46
-
47
- WebSocket
48
- g_hWS;
49
-
50
- public void OnPluginStart ()
51
- {
52
- RegServerCmd ("ws_start", ws_start);
53
- RegServerCmd ("ws_close", ws_close);
54
- RegServerCmd ("ws_state", ws_state);
55
- }
56
-
57
- Action ws_start (int args)
58
- {
59
- g_hWS = new WebSocket("ws://127.0.0.1:9999", WebSocket_JSON);
60
- g_hWS.SetMessageCallback(onMessage);
61
- g_hWS.SetOpenCallback(onOpen);
62
- g_hWS.SetCloseCallback(onClose);
63
- g_hWS.SetErrorCallback(onError)
64
- g_hWS.Connect();
65
- }
66
-
67
- Action ws_close(int args)
68
- {
69
- g_hWS.Disconnect();
70
- return Plugin_Handled;
71
- }
72
-
73
- Action ws_state(int args)
74
- {
75
- PrintToServer("ReadyState: %d", g_hWS.ReadyState);
76
- return Plugin_Handled;
77
- }
78
-
79
- void onOpen(WebSocket ws)
80
- {
81
- PrintToServer("onOpen: %x", ws);
82
- }
83
-
84
- void onClose(WebSocket ws, int code, const char[ ] reason)
85
- {
86
- PrintToServer("onClose: %d, %s", code, reason);
87
- }
88
-
89
- void onMessage(WebSocket ws, const YYJSON message, int wireSize)
90
- {
91
- char[ ] buffer = new char[ wireSize] ;
92
- message.ToString(buffer, wireSize);
93
- PrintToServer("msg: %s, size: %d", buffer, wireSize);
94
- }
95
-
96
- void onError(WebSocket ws, const char[ ] errMsg)
97
- {
98
- PrintToServer("onError: %s", errMsg);
99
- }
100
- ```
101
-
102
- ## Server Example
103
- ``` c++
104
- #include <sourcemod>
105
- #include <websocket>
106
-
107
- WebSocketServer
108
- g_hWsServer;
109
-
110
- public void OnPluginStart()
111
- {
112
- RegServerCmd("ws_server", ws_server);
113
- RegServerCmd("ws_server_stop", ws_server_stop);
114
- RegServerCmd("ws_server_broadcast", ws_server_broadcast);
115
- RegServerCmd("ws_server_clients", ws_server_clients);
116
- RegServerCmd("ws_server_sendtoclient", ws_server_sendtoclient);
117
- }
118
-
119
- Action ws_server(int args)
120
- {
121
- g_hWsServer = new WebSocketServer("0.0.0.0", 9999);
122
- g_hWsServer.SetMessageCallback(onSrvMessage);
123
- g_hWsServer.SetOpenCallback(onSrvOpen);
124
- g_hWsServer.SetCloseCallback(onSrvClose);
125
- g_hWsServer.SetErrorCallback(onSrvError);
126
- g_hWsServer.Start();
127
- return Plugin_Handled;
128
- }
129
-
130
- Action ws_server_broadcast(int args)
131
- {
132
- g_hWsServer.BroadcastMessage("Broadcast Message");
133
- return Plugin_Handled;
134
- }
135
-
136
- Action ws_server_sendtoclient(int args)
137
- {
138
- char clientId[4], message[256];
139
- GetCmdArg(1, clientId, sizeof(clientId));
140
- GetCmdArg(2, message, sizeof(message));
141
-
142
- g_hWsServer.SendMessageToClient(clientId, message);
143
- return Plugin_Handled;
144
- }
145
-
146
- Action ws_server_clients(int args)
147
- {
148
- PrintToServer("Connected clients: %d", g_hWsServer.ClientsCount)
149
- return Plugin_Handled;
150
- }
151
-
152
- Action ws_server_stop(int args)
153
- {
154
- g_hWsServer.Stop();
155
- return Plugin_Handled;
156
- }
157
-
158
- void onSrvMessage(WebSocketServer ws, WebSocket client, const char[] message, int wireSize, const char[] RemoteAddr, const char[] RemoteId)
159
- {
160
- PrintToServer("message: %s, wireSize: %d, RemoteAddr: %s, RemoteId: %s", message, wireSize, RemoteAddr, RemoteId);
161
- }
162
-
163
- void onSrvError(WebSocketServer ws, const char[] errMsg, const char[] RemoteAddr, const char[] RemoteId)
164
- {
165
- PrintToServer("onError: %s, RemoteAddr: %s, RemoteId: %s", errMsg, RemoteAddr, RemoteId);
166
- }
167
-
168
- void onSrvOpen(WebSocketServer ws, const char[] RemoteAddr, const char[] RemoteId)
169
- {
170
- PrintToServer("onOpen: %x, RemoteAddr: %s, RemoteId: %s", ws, RemoteAddr, RemoteId);
171
- }
172
-
173
- void onSrvClose(WebSocketServer ws, int code, const char[] reason, const char[] RemoteAddr, const char[] RemoteId)
174
- {
175
- PrintToServer("onClose: %d, reason: %s, RemoteAddr: %s, RemoteId: %s", code, reason, RemoteAddr, RemoteId);
176
- }
177
- ```
42
+ ## Example
43
+ * [ Example Script] ( https://github.com/ProjectSky/sm-ext-websocket/tree/main/scripting )
0 commit comments