厌倦了传统的插件消息通道吗?mc-multisockets 为开发者提供了一个简洁的解决方案,它使用带 SSL 的套接字,让你能在服务器之间轻松发送任意数据。无论是 BungeeCord 还是 Spigot 实例,只需几行代码即可实现双向通信,告别繁琐配置。它基于 WebSockets 协议,支持完整的双向对话,而不仅仅是简单的请求-响应。你甚至可以使用 JavaScript 从 Web 应用程序发送和接收数据。
plugins 文件夹即可。plugins 文件夹中。假设你有一个 BungeeCord 和两个 Spigot 服务器(Factions 和 HungerGames)。每个服务器都将运行一个套接字,并监听不同的端口。
BungeeCord 配置 (监听端口 25590)
sockets:
"bungee":
port: 25590
connections:
"factions":
host: localhost
port: 25591
"hungergames":
host: localhost
port: 25592Factions 服务器配置 (监听端口 25591)
sockets:
"factions":
port: 25591
connections:
"bungee":
host: localhost
port: 25590
"hungergames":
host: localhost
port: 25592HungerGames 服务器配置 (监听端口 25592)
sockets:
"hungergames":
port: 25592
connections:
"factions":
host: localhost
port: 25591
"bungee":
host: localhost
port: 25590以下代码展示了如何在插件启用时设置套接字、定义路由并启动对话。
// 当你的插件启用时
override fun onEnable() {
// 当任何套接字启动时
onSocketEnable { name ->
println("Enabled socket $name on port $port")
// 必须在此处定义所有路由
// 创建到 /MyPlugin/test 的路由
onConversation("/MyPlugin/test") {
// 发送消息
send("it works!")
// 等待接收消息
println(readMessage())
// 可以重复多次
send("it still works!")
println(readMessage())
}
hello("factions")
}
}
fun Socket.hello(target: String) {
// 获取到目标服务器的连接
val connection = connections[target] ?: return println("Unknown connection: $target")
// 启动一个到 /MyPlugin/hello 的对话
connection.conversation("/MyPlugin/hello") {
// 发送消息
send("hello world!")
// 等待接收消息
println(readMessage())
}
connection.printFactions()
}
fun Connection.printFactions() {
// 这是一个简便函数,等效于 conversation { readMessage() }
request("/Factions/factions") { result ->
// 仅打印接收到的第一条消息,然后关闭对话
println(result)
}
}如需更多技术细节、报告问题或参与讨论,请访问该插件的 GitHub 仓库,并加入 #mc-multisockets 频道。
友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作
历史访问人数:2,671,239 | 历史访问人次:3,238,108
今日访问人数:16,681 | 今日访问人次:19,086
昨日访问人数:30,655 | 昨日访问人次:36,381
Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.
❤ Powered by GermMC 京ICP备17023959号-6