Add Launcher

This commit is contained in:
Changhua
2023-01-20 11:17:48 +08:00
parent eb7df31f1e
commit fae5d3eb7f
14 changed files with 585 additions and 10 deletions
+2
View File
@@ -133,9 +133,11 @@
<PostBuildEvent>
<Command>cd $(OutDir)
md out\cpp
md out\launcher
md out\java\src\main\java
md out\java\src\main\resources\win32-x86
xcopy /y $(OutDir)spy.dll $(OutDir)out\cpp
xcopy /y $(OutDir)spy.dll $(OutDir)out\launcher
xcopy /y $(OutDir)spy.dll $(OutDir)out\java\src\main\resources\win32-x86
xcopy /y $(OutDir)spy.dll $(SolutionDir)python\wcferry</Command>
</PostBuildEvent>
+22 -10
View File
@@ -31,7 +31,7 @@ extern std::string GetSelfWxid(); // Defined in spy.cpp
using namespace std;
using grpc::CallbackServerContext;
using grpc::CallbackServerContext;
using grpc::Server;
using grpc::ServerBuilder;
using grpc::ServerUnaryReactor;
@@ -231,7 +231,8 @@ public:
static DWORD lThreadId = 0;
static bool lIsRunning = false;
static ServerBuilder lBuilder;
static ServerBuilder lBuilder;
static WcfImpl lService;
static unique_ptr<Server> &GetServer()
{
@@ -243,14 +244,13 @@ static unique_ptr<Server> &GetServer()
static int RunServer()
{
string server_address("0.0.0.0:10086");
WcfImpl service;
lBuilder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
lBuilder.AddChannelArgument(GRPC_ARG_KEEPALIVE_TIME_MS, 2000);
lBuilder.AddChannelArgument(GRPC_ARG_KEEPALIVE_TIMEOUT_MS, 3000);
lBuilder.AddChannelArgument(GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS, 1);
lBuilder.RegisterService(&service);
lBuilder.RegisterService(&lService);
unique_ptr<Server> &server = GetServer();
LOG_INFO("Server listening on {}", server_address);
LOG_DEBUG("server: {}", fmt::ptr(server));
@@ -261,7 +261,11 @@ static int RunServer()
}
int RpcStartServer()
{
{
if (lIsRunning) {
return 0;
}
HANDLE rpcThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)RunServer, NULL, NULL, &lThreadId);
if (rpcThread != 0) {
CloseHandle(rpcThread);
@@ -272,12 +276,20 @@ int RpcStartServer()
int RpcStopServer()
{
if (lIsRunning) {
UnListenMessage();
if (lIsRunning) {
Empty empty;
Response rsp;
CallbackServerContext context;
unique_ptr<Server> &server = GetServer();
LOG_DEBUG("server: {}", fmt::ptr(server));
LOG_DEBUG("server: {}", fmt::ptr(server));
if (gIsListening) {
//UnListenMessage(); // Do it in RpcDisableRecvMsg
lService.RpcDisableRecvMsg(&context, &empty, &rsp);
}
server->Shutdown();
LOG_INFO("Server stoped.");
LOG_INFO("Server stoped.");
lIsRunning = false;
}
return 0;