本篇文章主要讲搭建过程,以及出现问题的解决方法。难度较高,我已经搭建好了服务器供玩耍,如何连接服务器看这篇文章或者 简书
不推荐的方法
我先找到 github SoapboxRaceWorld上面的开源服务器,尝试了很久,最后搭建好了之后发现游戏中购车的界面进不去,在后台数据库发现少数据,但是我已经全部导入了的😂


既然已经不推荐用这种方法了,可以跳过这里。

打包出来的是 war ,需要 wildfly 才能部署,需要做的事情如下:
- 下载 releases 打包好的 war,以及 wiki 里提供的 wildfly (google drive 要梯子)
- 放入 war 到 wildfly 目录下的 standalone/deployments

- 配置 openfire 服务 (配置文件 wildfly/standalone/configuration/standalone.xml)
配置 xmppIp 为公网地址(必须检查)
Udp freeroam、race 都是未完成的功能(私服官方到现在都没搞定😂我也不知道是什么功能)
配置 openfire restful api 地址
配置 openfire token

也可以登录wildfly 后台修改http://localhost:9990/console/App.html#profile/properties(需要创建账户,运行 add-user.sh 按提示即可)。

- 配置数据库,同样可以编辑 xml 也可以登录后台数据源配置

5.(可选)配置绑定的后台管理地址

- 可在后台重启服务

正文
wiki 给出需要用到服务 openfire 、mysql 、wildfly(后面我找到了 nfsw-server.jar替换掉)都需要用到数据库,所以先从数据库开始吧。

搭建前提
有 1G 以上的内存,公网IP(如果只是要本地,直接下一个模拟器就好了,不用这么麻烦。),最好 Linux 主机,windows 没试过,不过应该也行。
1. MySQL 数据库
- 导入OPENFIRE.sql,soapbox.sql(修改后从数据库导出的,原来的 db.sql 有点问题,soapbox 数据库大小写没对上😂)
默认openfire用户名:openfire 密码 openfire
默认soapbox用户名:soapbox 密码soapbox
PS:不用来试我数据库了,没开放3306端口,我是用SSH通道用密钥连接的。
- 保持数据运行就好了
2.openfire 配置
如 wiki 写的一样OpenFire从 google drive下载。

登录后台,admin 密码 admin
访问 localhost:9090/plugins/restapi/rest-api.jsp 启用 restful api 把 openfire token 保存下来配置nfsw-server需要用到
登录后台 localhost:9090/server-properties.jsp
Xmpp.domain 改为与后面的nfsw-server.cfg中xmppIp一样的地址


运行 openfire/bin/openfire start
让其在后台运行即可。
日志文件在 openfire/logs/
目录下,有问题时可以使用tailf openfire/logs/all.log
持续查看输出,方便找配置错误,当没有报数据库连不上,没有打印出一些堆栈时就可配置nfsw-server了,否则检查配置是否有误。
3.nfsw-server 配置
在github下载nfsw-server.jar、nfsw-server.cfg也可以自己编译,下载 jdk、maven执行 mvn clean compile assembly:single
-
配置数据库连接(src/main/resources/META-INF/persistence.xml)使用打包的话可以先替换掉压缩包里的 xml

-
在nfsw-server.cfg中配置xmppIp(在openfire配置的xmpp.domain 一定要一样,否则报错 Unable to authenticate: Fail to create new session.
)
-
openfireToken(在openfire配置的openfireToken)
-
httpPort是游戏开放端口,我用的是1337(外网开放1337端口)

-
nfsw-server.cfg,nfsw-server.jar 放在同一目录下执行java -jar nfsw-server.jar
注意看输出,先连接 openfire restful api 返回 201说明 openfire 连接成功

然后连接数据库,当没有报数据库连不上,没有打印出一些堆栈时就可应该可以了,否则检查配置是否有误。
enjoy!
nfsw 服务搭建已经完成,在开头的文章下载 nfsw 以及启动器就可以登录了!等会再写一篇客户端登录的教程
PS:我准备把这个服务做成 docker 镜像,这样部署的时候就不用这么配来配去(自己捣鼓了差不多一个星期才搞定,先是 wildfly 搭建的数据库缺数据,无法购买车辆,后是 openfire 中 xmpp.domain 配置错误,进入游戏就提示与服务器断开连接,其实是跨域的问题,nfsw-server的xmppIp要与其相同。)
上面项目都是基本已经停止维护的,使用的 openfire 是4.0.2 的,我fork的老哥michelinus/**nfsw-server**也停止更新一年了。
有问题可以在下面留言哦,欢迎一起交流(虽然极大可能零回复)