-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
120 lines (102 loc) · 3.32 KB
/
Copy pathProgram.cs
File metadata and controls
120 lines (102 loc) · 3.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
using SOCKETNET35 = Socket.IO.NET35;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Socket.IO.NET35.Tasks;
using System.ComponentModel;
namespace Console
{
class Program
{
private static SOCKETNET35.Socket _mainSocket { get; set; }
static Queue<TaskWorker> _workerQueue = new Queue<TaskWorker>();
static bool _runWorkers = true;
static int _workerId = 0;
static void Main(string[] args)
{
System.Console.WriteLine("Starting application...");
ConnectToSocket();
//TestTimer();
//ManualEmit();
RunLoad();
System.Console.WriteLine("Running....");
System.Console.ReadKey();
}
private static void RunLoad()
{
CreateWorkers(5);
}
private static void ManualEmit()
{
while (true)
{
var key = System.Console.ReadKey();
if (key.KeyChar == 13)
{
var dataString = "Key " + DateTime.Now.Ticks.ToString();
//_mainSocket.Emit("hi", dataString);
System.Console.WriteLine("Emitted " + dataString);
}
}
}
private static void SpawnWorker(string i)
{
var task = new TaskWorker(null);
task.QueueWorker(
_workerQueue,
null,
(x, e) =>
{
//// some custom do work logic.
while (_runWorkers)
{
var dataString = task.Id + " Key " + DateTime.Now.Ticks.ToString();
_mainSocket.Emit("hi", dataString);
System.Console.WriteLine("Emitted " + dataString);
System.Threading.Thread.Sleep(50);
}
},
(x, e) =>
{
//// some custom completed logic.
},
(e) =>
{
//// some custom display error logic.
},
(x, e) =>
{
//// Progress change logic.
});
}
private static void CreateWorkers(int workerCount)
{
for (int i = 0; i < workerCount; i++)
{
SpawnWorker(i.ToString());
}
}
private static void ConnectToSocket()
{
var queryData = new Dictionary<string, string>();
queryData.Add("token", "12345");
var dataString = "Test" + DateTime.Now.Ticks.ToString();
_mainSocket = SOCKETNET35.IO.Socket("http://localhost:3000/",
new SOCKETNET35.IO.Options()
{
Query = queryData,
RememberUpgrade = true
});
_mainSocket.On("hi", (data) =>
{
System.Console.WriteLine("Received data: " + data.ToString());
});
_mainSocket.On(Socket.IO.NET35.Socket.EVENT_CONNECT, () =>
{
System.Console.WriteLine("Connected...");
_mainSocket.Emit("hi", dataString);
});
}
}
}