Skip to content
This repository was archived by the owner on Jun 23, 2023. It is now read-only.

2.配置端和部分安全防护建议(。・ω・。)

DavidMeow edited this page May 26, 2021 · 22 revisions

0.使用内置QR码识别登录*

使用内置函数命令,当某种条件时在你的控制台程序使用如下代码:
LoginQQ.Login();
便会自动在控制台输出登录的二维码(需要先配置发信端,关于配置发信端请看1.配置发信端)

1.配置发信端\( ̄︶ ̄)/

由于发信端是一个同构的静态模式,于是您在调用任何指令前进行赋值即可(建议是主程序第一句).(* ̄︶ ̄)
配置如下

  1. (必填) PostHelper.CallerUrl = "http://localhost:9999";

如果您原来的地址是 http://localhost:9999/v1/LuaApiCaller?......... 您只需要键入 http://localhost:9999/ 即可

  1. (必填) PostHelper.LoginQQ = "123456"; 你要连接的QQ号
  2. (可选) PostHelper.Header = new System.Net.WebHeaderCollection() { { "xxxxx", "xxxxx" } }; 用于审计连接

这样您就配置完了发信端了,配置发信端以后才能使用各种QQFunc和Msg发信功能ヾ(゚∀゚ゞ)

(注)由于收发异步和同构原因  
您可以不配置收信端或者发信端而使用其中的一个  
比如某些不需要用户触发的发信(定点报时)٩(๑❛ᴗ❛๑)۶  

2.配置收信端(ノ ̄▽ ̄)

1.创建一个Client代理端(静态平衡端)٩(๑❛ᴗ❛๑)۶

使用语句 using var recv = MeowIOTClient.Connect("你的wsUrl(类似ws://localhost:9999等)", 你要打出的日志类型);
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
!!请注意 using var 变量 语句会在他的包裹定义域内完全有效,执行超过作用域后会自动dispose
务 必包裹在正确的定义域内(* ̄︶ ̄)
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

例:

{
  ....  
  using var recv = MeowIOTClient("ws://localhost:9999",LogType.Verbose).Connect(); //←变量recv可以使用( ̄▽ ̄)~*
  ....
}//←变量recv失效(;′⌒`)

2.创建一个监听事件 (例如好友文本信息)ヾ(゚∀゚ゞ)

2.0. 使用语句 recv._FriendTextMsgRecieve += (s, e) =>{ };来创建一个快速lambda委托.
2.1. 您如果想使用 VisualStudio 创建一个 非Lambda订阅 请参照下述操作:

输入 recv 然后输入 ._ 使用小键盘上下选中 _FriendTextMsgRecieve
然后键入 += 然后按 TAB 再改改名,然后按 Enter(回车) 可以快速创建一个外置的代理委托了.

3.尝试在控制台输出(ノ゚▽゚)ノ

在订阅的事件中输入 cw 然后按下 TAB 在输出内容中写入 $"{s.CurrentQQ}:{s.IOBody.MsgFromQQ}:{e.Content}"
朝自己的机器人发信息,检查您的控制台输出,应该会输出如下内容
你的机器人QQ号:发信息的人的QQ号:你发的信息 : 比如我的出现了 2040755401:1500294830:asd
如果出现了这个你基本已经成功的配置了收信端了.

3.安全防护建议(ノ´▽`)ノ♪:

1.如果不需要外网访问最简单的就是封闭外网访问内网的对应端口.即可.绑定localhost,本机运行.(~ ̄▽ ̄)~
2.如果要外网访问最简单的防护操作是验证UserAgent头,屏蔽掉不属于你的请求连接,正好框架内也支持.ヾ(✿゚▽゚)ノ

linux端使用Nginx来进行操作,您可以创建一个自定义的UA头
如果不是这种特定的UA头那么Nginx则会自动忽略.ヾ(゚∀゚ゞ)
例: 如果您想让您的
发信地址变成 http://asd.asd.cn
UA头变成 {{"XX","XXX"}}
WS监听地址变成 ws://asd.asd.cn?bot=mybot
您只需要按下面配置您的Nginx即可

如果您看不懂以下配置,请不要照抄到您的服务器配置.(ノдヽ)

server  
{  
   listen       80;  
   server_name  asd.asd.cn;  
   underscores_in_headers on;  
   proxy_http_version 1.1;  
   proxy_set_header Connection keep-alive;  
   proxy_set_header Upgrade $http_upgrade;   
   proxy_set_header Connection 'upgrade';  
   proxy_set_header Host $http_host;  
   proxy_set_header X-Forwarded-Server localhost;  
   proxy_set_header X-Real-IP $remote_addr;  
   proxy_set_header X-Forwarded-Proto $scheme;  
   location / {  
       if ( $query_string ~* ^(.*)bot=mybot\b(.*)$ ){  
           proxy_pass http://localhost:9999; // 你的地址  
       }  
       if ( $http_XX = "XXX" ) {  
           proxy_pass http://localhost:9999$uri?$args; // 你的地址  
       }  
   }  
}  

那么配置完了,我们该如何发信息呢,引导事件Σ (゚Д゚;) ??,那还要你跟着教程一起走哦~