windows下部署Blynk服务器部署最新教学
目录
Step1. 下载链接
链接:https://pan.baidu.com/s/1ysbAYhyxUGx1ZG3xNMdsAw?pwd=1fel
提取码:1fel
Step2.部署
Step2.1软件安装及载入工程
1.安装Intellij 社区版 正常安装即可
https://www.jetbrains.com.cn/idea/download/?section=windows
2.下载maven 并将其添加进环境变量

Step2.2 软件配置 右键使用ij打开该文件 等待其加载完成

1.点击编辑配置

2.添加新配置 选择应用程序(Applicantion)

3.配置变量 并点击运行

4.会提示报错(net.glxn.qrgen.core.image不存在),全局搜索2.2.0,将其改为2.6.0,修改完成后刷新maven


5.修改maven运行配置,并屏蔽test
clean install -Dcheckstyle.skipExec=true -Dcheckstyle.skip=true -f pom.xml



6.开始编译

Setp2.2 启动服务(一下操作均在一个文件夹内,随便找个地方创建就可以)
1.创建txt文件 输入以下代码 保存 将文件类型设置为bat即可
Java -jar server-0.41.14.jar -dataFolder Sever_LOG
2.找到server-0.41.14.jar文件复制到bat所在文件夹
此文件在这个文件夹内 blynk-server-0.41.14\server\launcher\target
3.双击bat文件 会自动启动服务器,启动时候大概会有十秒左右的等待创建的时间,打开输出的网址,输入邮箱密码即可
Step2.3 修改文件 ServerLauncher.java 这一步不是必须的,如果第一次开启服务的时候显示端口占用就这样修改一下啊
package cc.blynk.server.launcher;
import cc.blynk.server.Holder;
import cc.blynk.server.servers.BaseServer;
import cc.blynk.server.servers.application.MobileAndHttpsServer;
import cc.blynk.server.servers.hardware.HardwareAndHttpAPIServer;
import cc.blynk.server.servers.hardware.MQTTHardwareServer;
import cc.blynk.utils.AppNameUtil;
import cc.blynk.utils.JarUtil;
import cc.blynk.utils.LoggerUtil;
import cc.blynk.utils.SHA256Util;
import cc.blynk.utils.StringUtils;
import cc.blynk.utils.properties.GCMProperties;
import cc.blynk.utils.properties.MailProperties;
import cc.blynk.utils.properties.ServerProperties;
import cc.blynk.utils.properties.SmsProperties;
import cc.blynk.utils.properties.TwitterProperties;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import java.io.File;
import java.net.BindException;
import java.security.Security;
import java.util.HashMap;
import java.util.Map;
/**
* Entry point for server launch.
*
* By default starts 4 servers on different ports:
*
* 1 server socket for HTTP API, Blynk hardware protocol, web sockets (8080 default)
* 1 server socket for HTTPS API, Blynk app protocol, hardware secured blynkapp, web sockets (9443 default)
* 1 server socket for MQTT (8440 default)
*
* In addition launcher start all related to business logic threads like saving user profiles thread, timers
* processing thread, properties reload thread and shutdown hook tread.
*
* The Blynk Project.
* Created by Dmitriy Dumanskiy.
* Created on 2/16/2015.
*/
public final class ServerLauncher {
//required for QR generation
static {
System.setProperty("java.awt.headless", "true");
}
private ServerLauncher() {
}
public static void main(String[] args) throws Exception {
Map<String, String> cmdProperties = ArgumentsParser.parse(args);
ServerProperties serverProperties = new ServerProperties(cmdProperties);
LoggerUtil.configureLogging(serverProperties);
//required for logging dynamic context
System.setProperty("data.folder", serverProperties.getProperty("data.folder"));
//required to avoid dependencies within model to server.properties
setGlobalProperties(serverProperties);
MailProperties mailProperties = new MailProperties(cmdProperties);
SmsProperties smsProperties = new SmsProperties(cmdProperties);
GCMProperties gcmProperties = new GCMProperties(cmdProperties);
TwitterProperties twitterProperties = new TwitterProperties(cmdProperties);
Security.addProvider(new BouncyCastleProvider());
boolean restore = Boolean.parseBoolean(cmdProperties.get(ArgumentsParser.RESTORE_OPTION));
start(serverProperties, mailProperties, smsProperties,
gcmProperties, twitterProperties, restore);
}
private static void setGlobalProperties(ServerProperties serverProperties) {
Map<String, String> globalProps = new HashMap<>(4);
globalProps.put("terminal.strings.pool.size", "25");
globalProps.put("initial.energy", "2000");
globalProps.put("table.rows.pool.size", "100");
globalProps.put("csv.export.data.points.max", "43200");
for (var entry : globalProps.entrySet()) {
String name = entry.getKey();
String value = serverProperties.getProperty(name, entry.getValue());
System.setProperty(name, value);
}
}
private static void start(ServerProperties serverProperties, MailProperties mailProperties,
SmsProperties smsProperties, GCMProperties gcmProperties,
TwitterProperties twitterProperties,
boolean restore) {
Holder holder = new Holder(serverProperties,
mailProperties, smsProperties, gcmProperties, twitterProperties,
restore);
BaseServer[] servers = new BaseServer[] {
new HardwareAndHttpAPIServer(holder),
new MobileAndHttpsServer(holder),
new MQTTHardwareServer(holder)
};
startServers(servers);
if (true) {
//Launching all background jobs.
JobLauncher.start(holder, servers);
System.out.println();
System.out.println("Blynk Server " + JarUtil.getServerVersion() + " successfully started.");
String path = new File(System.getProperty("logs.folder")).getAbsolutePath().replace("/./", "/");
System.out.println("All server output is stored in folder '" + path + "' file.");
holder.sslContextHolder.generateInitialCertificates(holder.props);
createSuperUser(holder);
}
}
private static void createSuperUser(Holder holder) {
ServerProperties props = holder.props;
String url = props.getAdminUrl(props.host);
String email = props.getProperty("admin.email", "admin@blynk.cc");
String pass = props.getProperty("admin.pass");
if (true) {
if (pass == null || pass.isEmpty()) {
System.out.println("Admin password not specified. Random password generated.");
pass = StringUtils.randomPassword(24);
}
System.out.println("Your Admin url is " + url);
System.out.println("Your Admin login email is " + email);
System.out.println("Your Admin password is " + pass);
String hash = SHA256Util.makeHash(pass, email);
holder.userDao.add(email, hash, AppNameUtil.BLYNK, true);
}
}
private static boolean startServers(BaseServer[] servers) {
//start servers
try {
for (BaseServer server : servers) {
server.start();
}
return true;
} catch (BindException bindException) {
System.out.println("Server ports are busy. Most probably server already launched. See "
+ new File(System.getProperty("logs.folder")).getAbsolutePath() + " for more info.");
} catch (Exception e) {
System.out.println("Error starting Blynk server. Stopping.");
}
return false;
}
}

浙公网安备 33010602011771号