Я кодирую плагин cs go для его связи с разногласиями, чтобы я мог делать удаленные запреты. У меня этот код на сокете получают:
public OnWebsocketReceive(WebsocketHandle:websocket, WebsocketSendType:iType, String:receiveData[], dataSize)
{
new bool:IsArray;
new String:fetch[16];
strcopy(fetch, 16, receiveData);
if (!StrEqual(fetch, "{", true))
{
IsArray = true;
}
if (IsArray)
{
if (StrContains(receiveData, "RequestType", false) != -1)
{
new JSON_Object:obj = json_decode(receiveData, JSON_Object:0, 0, 0);
new RTYPE = JSON_Object.GetInt(obj, "RequestType");
switch (RTYPE)
{
case 452:
{
// Some stuff here
}
default:
{
}
}
}
}
return 0;
}
И этот код на сокете init:
OpenSocketStream()
{
new String:serverIP[40];
new longip = GetConVarInt(FindConVar("hostip"));
FormatEx(serverIP, 40, "%d.%d.%d.%d", longip >>> 24 & 255, longip >>> 16 & 255, longip >>> 8 & 255, longip & 255);
if (!ServerSocket)
{
ServerSocket = Websocket_Open(serverIP, GetConVarInt(CVAR_WebsocketPort), OnWebsocketIncoming, OnWebsocketMasterError, OnWebsocketMasterClose);
}
return 0;
}
public Action:OnWebsocketIncoming(WebsocketHandle:websocket, WebsocketHandle:newWebsocket, String:remoteIP[], remotePort, String:protocols[256])
{
Format(protocols, 256, "");
Websocket_HookChild(newWebsocket, OnWebsocketReceive, OnWebsocketDisconnect, OnChildWebsocketError);
PushArrayCell(ClientSockets, newWebsocket);
return Action:0;
}
И мой python код для подключения к сокету:
import socket
import json
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
x = '{"RequestType":"452","RemoteLinkPKG":"POST","RemoteLinkPKG":"1337","SID":"1234","Time":"1234","Action"."1"}'
y = json.dumps(x)
s.connect(('serverip',4126))
s.send(y)
print s.recv(1024)
Но он просто зависает, и я не получаю ответа