【发布时间】:2022-01-19 18:15:54
【问题描述】:
我正在尝试为 Minecraft 设置一个 websocket 服务器。
代码:
const WebSocket = require('ws')
const uuid = require('uuid') // For later use
console.log('Worldedit Ready. On Minecraft chat, type /connect localhost:1010')
const wss = new WebSocket.Server({ port: 1010 })
wss.send(JSON.stringify({
"header": {
"version": 1, // We're using the version 1 message protocol
"requestId": uuid.v4(), // A unique ID for the request
"messageType": "commandRequest", // This is a request ...
"messagePurpose": "subscribe" // ... to subscribe to ...
},
"body": {
"eventName": "PlayerMessage" // ... all player messages.
},
}))
// On Minecraft, when you type "/connect localhost:3000" it creates a connection
wss.on('connection', socket => {
console.log('Connected')
})
wss.on('message', packet => {
const msg = JSON.parse(packet)
console.log(msg)
})
错误:
TypeError: wss.send is not a function
at Object.<anonymous> (C:\Users\jerem\Documents\world edit\main.js:8:5)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47
我正在关注的教程使用ws.send。为什么这会返回错误?我以为send 是一个函数。
【问题讨论】:
-
你不使用你的服务器对象发送?您发送到
socket到达connection事件。因此,wss.send()不是您可以在代码中执行的操作。相反,进入connection事件处理程序并执行socket.send()。