Giter Club home page Giter Club logo

csgsi's People

Contributors

antonpup avatar liamht avatar rakijah avatar womayr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

csgsi's Issues

GameState.Added... should return a bool

The Added section in the json retrieved from the server tells you what was added and not the values of the nodes added:

"added": {
		"player": {
				"state": true,
				"weapons": true,
				"match_stats": true
		}
}

So it's expected the following to work:

if (gs.Added.Player.MatchStats)

But it doesn't since "gs.Added.Player.MatchStats" is not a bool.

Libary Can't see port FIX (worked for me)

So if you are checked your CS:GO console and it doesn't show any error after
Loading Game State Integration:
gamestate_integration_YOURNAME.cfg
then try my fix:
instead of || gsl = new GameStateListener("http://127.0.0.1:1237");
try || gsl = new GameStateListener("http://127.0.0.1:1237/");
Note: you need the slash
I hope I helped, and Fix will comming soon
Also upgrade idea:
Instead of passing GameState gs though OnNewGameState
Make it global so we can have a readable code like this:
checkbomb()
setwallpaper()

instead of checkbomb(gs) << copiing entrie obj
checkbomb(gs.bomb.state) << looks bad

Int Null value handling

Change it to other random number.
Because if the player have -1 kill The program cant tell if its a null value or a real value.
Thank you,
Guy

Getting NewGameState but can't compare its values.

I'm testing things out so I wrote this snippet. I get a lot of "New game state." outputs in the console, meaning I'm sure getting updates in the game state, but it doesn't output "Bomb is planted." when it is planted. Do you know why? I also tried using the events you provide with CSGSI but it doesn't work as well.

using System;
using System.Threading.Tasks;
using System.Net.Http;
using CSGSI;
using CSGSI.Nodes;

namespace Test
{
    class Program
    {
        static GameStateListener gsl;
        static void Main(string[] args)
        {
            gsl = new GameStateListener(3000);
            gsl.NewGameState += new NewGameStateHandler(OnNewGameState);
            if (!gsl.Start())
            {
                Environment.Exit(0);
            }
            Console.WriteLine("Listening...");
        }

        static void OnNewGameState(GameState gs)
        {
            Console.WriteLine("New game state.");

            // EDIT:
            // Console.WriteLine(gs.Bomb.State.ToString());

            // EDIT 2:
            // Console.WriteLine(gs.JSON.ToString());

            if (gs.Bomb.State == BombState.Planted)
            {
                Console.WriteLine("Bomb is planted.");
            }
        }
    }
}

EDIT: So, I added "Console.WriteLine(gs.Bomb.State.ToString());" in "OnNewGameState(GameState gs)" and the output is always "Undefined"... So I think there's a problem with CSGSI, right?

EDIT 2: Using "Console.WriteLine(gs.JSON.ToString());" I could see that "bomb": "planted" is being added to "round", but for some reason CSGSI is not setting Bomb.State to planted...

gs.Map.HasData always returns true

When using gs.Map.HasData to detect whether the user is in game or on the main menu, I noticed that it seems to always return true regardless of condition. I did find a workaround which is to use gs.Map.JSON.Equals("{}") which will return true if when the player is on the main menu.

GameStateListener.Start only returns true on first run when debugging

When debugging using VS2017, the GameStateListener object will only return true once. Then returns false thereafter, causing my application (WPF) to exit as per my code.

Closing and re-opening visual studio resolves this. However this is not ideal.


 public CurrentGameUpdater(CurrentGameViewModel viewModelToUpdate)
        {
            _csgoListener = new GameStateListener(12455);
            _csgoListener.NewGameState += OnNewGameState;
            _isListenerRunning = _csgoListener.Start();
            if (_isListenerRunning)
            {
                Debug.Write("Not Running");
               // Environment.Exit(0);
            }
        }

  public void Dispose()
        {
            if (_isListenerRunning)
            {
                _csgoListener.Stop();
            }
            _isListenerRunning = false;
        }

public partial class CurrentGamePage : UserControl
    {
        public CurrentGamePage()
        {    
            InitializeComponent();
            Dispatcher.ShutdownStarted += OnDispatcherShutDownStarted;
        }

        private void OnDispatcherShutDownStarted(object sender, EventArgs e)
        {
            (DataContext as IDisposable)?.Dispose();
        }
    }
        ```

Not working with Danger Zone

The library is not working properly with Danger Zone, since the GSI got a few new items introduced. To make it work I had to do the following:

  • WeaponNode.cs, enum WeaponType: add items "Tablet", "Fists", "BreachCharge" and "Melee"
  • MapNode.cs, enum MapMode: add item "Survival" (this is the mode that represents Danger Zone)

Can't connect over LAN

Hi!

I'm developing an application where i have to send the same data to 2 diffrent http servers.

My issue is that i can get data when i'm using 127.0.0.1 or localhost, but when i moce the csgo spectator client to another computer, i can't get any data (Have tried running it as an administrator)

I used the sample JS and node to test external connection, and that worked fine.

So from Node; Local and remote works
From C#: Local works but not remote

Have allso tried diffrent ports and turning firewall off (This shouldn't be an issue as the node sample from valve is working)

I'm a misisng something here?

Thanks

Game State Objects come one round slower

Hey so I'm able to run your library and work with the events as well, however, the problem I'm facing is that I'm lagging a round behind than what is going on in the actual game. I tested it out with your example code as well. Would you have an idea of what I'm messing up?

Discontinuation of library

Hello,

Any reason why you chose to discontinue the library? We can definitely improve it together and it would be a nice project to tackle. There are a few things we can do to improve it (I'm almost done with the initial improvements):

  • Dependence on HttpContext, which can be circumvented using TcpListener
  • Game state design can be improved to use Enum and built-in .NET types
  • UacHelper needs to be completely removed
  • Test project that tests public API

We can make it much better than @master117's library. Let me know.

doesn't connect

after a lot of trying i also tried the example program but that doesn't work either, am i missing something ?

c# form problem FIX

If you have something strange thread error, just edit your code like this:
Your Code:
void OnNewGameState(GameState gs)
{
//Your Code is inside the comments
if( checkbomb() )startbomb();
//end of codes

}
Fixed code:
void OnNewGameState(GameState gs)
{
Invoke(new Action(() =>
{
//Your Code is inside the comments
if( checkbomb() )startbomb();
//end of codes

}));
}

So just copy all your "OnGameStateUpdate" codes to the block:
Invoke(new Action(() =>
{
//code here
}));

How to use it in vb net? Is that possible?

Hey. I really liked your project and I want to use it. But I prefer vb.NET.
I tried to translate the example of your code here http://converter.telerik.com/
But I get an error on this line "gsl.NewGameState += New NewGameStateHandler(AddressOf OnNewGameState)" (I tried to fix it, but I could not get :()
What can I do to fix it?
My code:

Imports CSGSI
Imports CSGSI.Nodes
Module Module1

    Dim gsl As GameStateListener

    Sub Main()
        gsl = New GameStateListener(3000)
        gsl.NewGameState += New NewGameStateHandler(AddressOf OnNewGameState)
        If Not gsl.Start() Then
            Environment.[Exit](0)
        End If
        Console.WriteLine("Listening...")
    End Sub

    Dim IsPlanted As Boolean = False

    Private Sub OnNewGameState(gs As GameState)
        If Not IsPlanted AndAlso gs.Round.Phase = RoundPhase.Live AndAlso gs.Round.Bomb = BombState.Planted AndAlso gs.Previously.Round.Bomb = BombState.Undefined Then
            Console.WriteLine("Bomb has been planted.")
            IsPlanted = True
        ElseIf IsPlanted AndAlso gs.Round.Phase = RoundPhase.FreezeTime Then
            IsPlanted = False
        End If
    End Sub
End Module

Please help me.

So do you guys know how to properly do the average damage per round?

How to fetch this kinda info? I saw that inside the code is just some randomness generation

Is this the most detailed GSI output possible?

{
"provider":{
"name":"Counter-Strike: Global Offensive",
"appid":730,
"version":13616,
"steamid":"76561197989040134",
"timestamp":1512022104
},
"map":{
"mode":"competitive",
"name":"de_cbble",
"phase":"live",
"round":1,
"team_ct":{
"score":1,
"name":"FURIA!",
"flag":"BR",
"timeouts_remaining":1,
"matches_won_this_series":0
},
"team_t":{
"score":0,
"name":"oNe",
"flag":"BR",
"timeouts_remaining":1,
"matches_won_this_series":0
},
"num_matches_to_win_series":0,
"current_spectators":1,
"souvenirs_total":0
},
"round":{
"phase":"freezetime"
},
"player":{
"steamid":"76561198066701530",
"clan":"oNe ∙",
"name":"iDk",
"observer_slot":0,
"team":"T",
"activity":"playing",
"state":{
"health":100,
"armor":0,
"helmet":false,
"flashed":0,
"smoked":0,
"burning":0,
"money":2700,
"round_kills":0,
"round_killhs":0,
"equip_value":200
}
},
"allplayers":{
"76561198002284085":{
"name":"FURIA! bLdV-",
"observer_slot":1,
"team":"CT",
"state":{
"health":100,
"armor":97,
"helmet":false,
"flashed":0,
"burning":0,
"money":4850,
"round_kills":0,
"round_killhs":0,
"equip_value":850
},
"match_stats":{
"kills":1,
"assists":2,
"deaths":0,
"mvps":0,
"score":4
},
"weapons":{
"weapon_0":{
"name":"weapon_knife",
"paintkit":"default",
"type":"Knife",
"state":"active"
},
"weapon_1":{
"name":"weapon_usp_silencer",
"paintkit":"default",
"type":"Pistol",
"ammo_clip":12,
"ammo_clip_max":12,
"ammo_reserve":24,
"state":"holstered"
}
},
"position":"-2280.00, -1696.00, -24.08"
},
"76561197996321741":{
"clan":"oNe ∙",
"name":"Maluk3",
"observer_slot":6,
"team":"T",
"state":{
"health":100,
"armor":0,
"helmet":false,
"flashed":0,
"burning":0,
"money":1500,
"round_kills":0,
"round_killhs":0,
"equip_value":200
},
"match_stats":{
"kills":0,
"assists":0,
"deaths":1,
"mvps":0,
"score":0
},
"weapons":{
"weapon_0":{
"name":"weapon_knife_butterfly",
"paintkit":"am_zebra",
"type":"Knife",
"state":"holstered"
},
"weapon_1":{
"name":"weapon_glock",
"paintkit":"am_nuclear_pattern1_glock",
"type":"Pistol",
"ammo_clip_max":20,
"ammo_reserve":120,
"state":"active"
}
},
"position":"-498.00, 2184.00, -223.72"
},
"76561198164970560":{
"name":"FURIA! yuurih",
"observer_slot":2,
"team":"CT",
"state":{
"health":100,
"armor":0,
"helmet":false,
"flashed":0,
"burning":0,
"money":3350,
"round_kills":0,
"round_killhs":0,
"equip_value":200
},
"match_stats":{
"kills":0,
"assists":0,
"deaths":1,
"mvps":0,
"score":0
},
"weapons":{
"weapon_0":{
"name":"weapon_knife_karambit",
"paintkit":"am_sapphire_marbleized",
"type":"Knife",
"state":"holstered"
},
"weapon_1":{
"name":"weapon_usp_silencer",
"paintkit":"default",
"type":"Pistol",
"ammo_clip":12,
"ammo_clip_max":12,
"ammo_reserve":24,
"state":"active"
}
},
"position":"-2360.00, -1656.00, -20.92"
},
"76561197987300415":{
"name":"FURIA! sparticcho",
"observer_slot":3,
"team":"CT",
"state":{
"health":100,
"armor":100,
"helmet":false,
"flashed":0,
"burning":0,
"money":3350,
"round_kills":0,
"round_killhs":0,
"equip_value":850
},
"match_stats":{
"kills":0,
"assists":1,
"deaths":0,
"mvps":0,
"score":1
},
"weapons":{
"weapon_0":{
"name":"weapon_knife_butterfly",
"paintkit":"am_zebra",
"type":"Knife",
"state":"holstered"
},
"weapon_1":{
"name":"weapon_usp_silencer",
"paintkit":"aq_usp_stainless",
"type":"Pistol",
"ammo_clip":12,
"ammo_clip_max":12,
"ammo_reserve":24,
"state":"active"
}
},
"position":"-2208.00, -1648.00, -20.57"
},
"76561197996370184":{
"name":"FURIA! VINI",
"observer_slot":4,
"team":"CT",
"state":{
"health":100,
"armor":91,
"helmet":false,
"flashed":0,
"burning":0,
"money":6350,
"round_kills":0,
"round_killhs":0,
"equip_value":850
},
"match_stats":{
"kills":2,
"assists":0,
"mvps":1,
"score":4
},
"weapons":{
"weapon_0":{
"name":"weapon_knife_karambit",
"paintkit":"default",
"type":"Knife",
"state":"active"
},
"weapon_1":{
"name":"weapon_usp_silencer",
"paintkit":"cu_usp_elegant",
"type":"Pistol",
"ammo_clip":12,
"ammo_clip_max":12,
"ammo_reserve":24,
"state":"holstered"
}
},
"position":"-2384.00, -1577.00, -16.80"
},
"76561197965021087":{
"name":"FURIA! guerri",
"observer_slot":5,
"team":"CT",
"state":{
"health":100,
"armor":0,
"helmet":false,
"flashed":0,
"burning":0,
"money":4850,
"round_kills":0,
"round_killhs":0,
"equip_value":200
},
"match_stats":{
"kills":1,
"assists":0,
"deaths":1,
"mvps":0,
"score":2
},
"weapons":{
"weapon_0":{
"name":"weapon_knife_karambit",
"paintkit":"am_marble_fade",
"type":"Knife",
"state":"holstered"
},
"weapon_1":{
"name":"weapon_usp_silencer",
"paintkit":"cu_usp_cyrex",
"type":"Pistol",
"ammo_clip":12,
"ammo_clip_max":12,
"ammo_reserve":24,
"state":"active"
}
},
"position":"-2192.00, -1577.00, -14.56"
},
"76561198034379704":{
"clan":"oNe ∙",
"name":"trk",
"observer_slot":7,
"team":"T",
"state":{
"health":100,
"armor":0,
"helmet":false,
"flashed":0,
"burning":0,
"money":3000,
"round_kills":0,
"round_killhs":0,
"equip_value":200
},
"match_stats":{
"kills":1,
"assists":0,
"deaths":1,
"mvps":0,
"score":2
},
"weapons":{
"weapon_0":{
"name":"weapon_knife_t",
"paintkit":"default",
"type":"Knife",
"state":"holstered"
},
"weapon_1":{
"name":"weapon_glock",
"paintkit":"cu_glock_indigo",
"type":"Pistol",
"ammo_clip":20,
"ammo_clip_max":20,
"ammo_reserve":120,
"state":"holstered"
},
"weapon_2":{
"name":"weapon_c4",
"paintkit":"default",
"type":"C4",
"state":"active"
}
},
"position":"-746.00, 2324.00, -182.76"
},
"76561197974487712":{
"clan":"oNe ∙",
"name":"mch",
"observer_slot":8,
"team":"T",
"state":{
"health":100,
"armor":0,
"helmet":false,
"flashed":0,
"burning":0,
"money":1500,
"round_kills":0,
"round_killhs":0,
"equip_value":200
},
"match_stats":{
"kills":0,
"assists":0,
"deaths":1,
"mvps":0,
"score":0
},
"weapons":{
"weapon_0":{
"name":"weapon_knife_karambit",
"paintkit":"aa_fade",
"type":"Knife",
"state":"holstered"
},
"weapon_1":{
"name":"weapon_glock",
"paintkit":"default",
"type":"Pistol",
"ammo_clip":20,
"ammo_clip_max":20,
"ammo_reserve":120,
"state":"active"
}
},
"position":"-722.00, 2424.00, -189.49"
},
"76561197988396483":{
"clan":"oNe ∙",
"name":"caik3",
"observer_slot":9,
"team":"T",
"state":{
"health":100,
"armor":0,
"flashed":0,
"burning":0,
"money":1500,
"round_kills":0,
"round_killhs":0,
"equip_value":200
},
"match_stats":{
"kills":0,
"assists":0,
"deaths":1,
"mvps":0,
"score":0
},
"weapons":{
"weapon_0":{
"name":"weapon_bayonet",
"paintkit":"default",
"type":"Knife",
"state":"holstered"
},
"weapon_1":{
"name":"weapon_glock",
"paintkit":"gs_glock18_award",
"type":"Pistol",
"ammo_clip":20,
"ammo_clip_max":20,
"ammo_reserve":120,
"state":"active"
}
},
"position":"-626.00, 2200.00, -207.72"
},
"76561198066701530":{
"clan":"oNe ∙",
"name":"iDk",
"observer_slot":0,
"team":"T",
"state":{
"health":100,
"armor":0,
"helmet":false,
"flashed":0,
"burning":0,
"money":2700,
"round_kills":0,
"round_killhs":0,
"equip_value":200
},
"match_stats":{
"kills":0,
"assists":0,
"deaths":1,
"mvps":0,
"score":0
},
"weapons":{
"weapon_0":{
"name":"weapon_knife_m9_bayonet",
"paintkit":"aq_damascus_90",
"type":"Knife",
"state":"active"
},
"weapon_1":{
"name":"weapon_glock",
"paintkit":"hy_craquelure",
"type":"Pistol",
"ammo_clip":20,
"ammo_clip_max":20,
"ammo_reserve":120,
"state":"holstered"
}
},
"position":"-774.00, 2216.00, -177.94"
}
},
"phase_countdowns":{
"phase":"freezetime",
"phase_ends_in":"17.5"
},
"auth":{
"token":"Q79v5tcxVQ8u"
}
}

Exception when PlayerNode has an empty array in Weapons

Hey!

I've been experimenting with a little project and noticed when testing that the library seems to exception out when a player has an empty list of weapons.

Newtonsoft.Json.Linq.JObject.Load (Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings) (at <bf474636719e4bcd9f70a47a268cfe27>:0)
Newtonsoft.Json.Linq.JObject.Parse (System.String json, Newtonsoft.Json.Linq.JsonLoadSettings settings) (at <bf474636719e4bcd9f70a47a268cfe27>:0)
Newtonsoft.Json.Linq.JObject.Parse (System.String json) (at <bf474636719e4bcd9f70a47a268cfe27>:0)
CSGSI.Nodes.NodeBase..ctor (System.String json) (at <b9cb9d037ba0446fb63dc61a7bd60f24>:0)
CSGSI.Nodes.WeaponsNode..ctor (System.String json) (at <b9cb9d037ba0446fb63dc61a7bd60f24>:0)
CSGSI.Nodes.PlayerNode..ctor (System.String json) (at <b9cb9d037ba0446fb63dc61a7bd60f24>:0)
CSGSI.Nodes.AllPlayersNode..ctor (System.String json) (at <b9cb9d037ba0446fb63dc61a7bd60f24>:0)
CSGSI.GameState.get_AllPlayers () (at <b9cb9d037ba0446fb63dc61a7bd60f24>:0)
Listener.Update () (at Assets/Scripts/Listener.cs:48)

Here's a really stripped down payload with the offending empty list:

{
  "allplayers": {
    "76561191119937323": {
      "weapons": []
    }
  }
}

Some variables aren't assigned in 1.1.4

I have come across a rather unusual issue. This wasn't occurring before. But some variables never get parsed from the JSON. I have provided an example screenshot. Gamestate says that "Player.Team" is Undefined, while it's base JSON states that player is on T. Same thing goes for the weapons, active weapon isn't initialized, when I have a glock out. Occurs on version 1.1.4
ver 1.1.4

On versions 1.1.2 and 1.1.3 this does not happen.
V1.1.3:
ver 1.1.3
V1.1.2:
ver 1.1.2

Some events are not being triggered.

Hello,

I'm running a .net core console application using CSGSI v1.3.1 and Newtonsoft.Json v12.0.3 from the NuGet package manager.

I am able to use the NewGameState, RoundEnd, RoundBegin, and RoundPhaseChanged events.
However the following BombPlanted, BombDefused, BombExploded, and PlayerFlashed events are never triggered.

Apologies I don't have the project on github yet but I've attached my startup file bellow if it helps.
Program.txt

Has anyone else run into this issue?

CSGSI on VB .NET

I'm trying to develop a test application in VB. Problem is, I don't get the event/raiseevent.
In C# it's quit easy with "listener.NewGameState ...", but in VB I don't have the Event.

image

Stats issue

Hey. Well, I've been trying to make a program with your awesome library but I'm getting some weird problems, and I really don't know if it is CS:GO Game State Integration itself our your library that is messing things up.

The problem is: I'm in game and I die. I switch to someone's camera. If that person I'm spectating kills someone, dies, assists someone, it counts that ME killed someone, died, assisted, etc.

I don't know if you understand my problem, I hope so. Can you help me? :)

No update for allplayers_id in Competitive

In the respective CFG I enabled allplayers_id (and none of the other allplayers options, because I only need the list of names and Steam IDs on my team). Then on the NewGameState event I check whether (gs.AllPlayers.Count > 0) and if it is I process the information in gs.AppPlayers.

This works fine as long as I am playing Casual, everytime I die I get a NewGameState event that carries this information.

However, if I start playing Competitive it doesn't work, I simply never get any updates where (gs.AllPlayers.Count > 0).

Not sure whether this is a problem with this C# class or whether it's a problem with CS itself.

Doesn't detect new Wingman map mode

After entering a Wingman game accessing the Map property fails with an exception:

System.ArgumentException: "Requested value 'scrimcomp2v2' was not found"
at System.Enum.EnumResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument)
at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
at CSGSI.Nodes.NodeBase.GetEnum[T](String Name)
at CSGSI.Nodes.MapNode..ctor(String JSON)
at CSGSI.GameState.get_Map()

This is probably due to the new map mode scrimcomp2v2 for Wingman missing from the MapMode enum.

I read something about a new scrimcomp5v5 map mode too but I don't know what exactly that is.

GSI Interface description?

Is there a more detailed interface description of what data the GSI provides? The official wiki-page does not seem to document the data, just the interface itself.

Sometimes when I call .Stop() there is unexpected error

System.Net.HttpListenerException
HResult=0x80004005
Message=The I/O operation has been aborted because of either a thread exit or an application request
Source=System
StackTrace:
at System.Net.HttpListener.EndGetContext(IAsyncResult asyncResult)
at CSGSI.GameStateListener.ReceiveGameState(IAsyncResult result)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken)
at System.Net.ListenerAsyncResult.IOCompleted(ListenerAsyncResult asyncResult, UInt32 errorCode, UInt32 numBytes)
at System.Net.ListenerAsyncResult.WaitCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

Code:

            AutoDisconnectFunc(true); // unsubscribing all event handlers from the events
            if (gslT1.Running)
                gslT1.Stop();
            if (gslT2.Running)
                gslT2.Stop();

what the problem ? I do not know why this occurs ? Can you help me ?

Enlarge the data arrival rate. Is that possible?

Good afternoon. Is it possible to speed up the flow of information?
My config file:

"CSGSI Example"
{
    "uri" "http://localhost:3000"
    "timeout" "0.0"
    "buffer"  "0.0"
    "throttle" "0.1"
    "auth"
    {
        "token"             "CSGSI Test"
    }
    "data"
    {
        "provider"                  "1"
        "map"                       "1"
        "round"                     "1"
        "player_id"                 "1"
        "player_weapons"            "1"
        "player_match_stats"        "1"
        "player_state"              "1"
        "allplayers_id"             "1"
        "allplayers_state"          "1"
        "allplayers_match_stats"    "1"
    }
}

It gives an update rate of approximately once per second ... I'm working on it. But so far without success. Help, please.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.