-
Notifications
You must be signed in to change notification settings - Fork 166
Open
Description
There is a bug in method handleInboundMessage in ClientEngine.
/media/maxli/Data/dev/OpenArcanum/node_modules/lance-gg/es5/serialize/Serializer.js:98 Uncaught TypeError: First argument to DataView constructor must be an ArrayBuffer
at new DataView (<anonymous>)
at Serializer.deserialize (/media/maxli/Data/dev/OpenArcanum/node_modules/lance-gg/es5/serialize/Serializer.js:98)
at NetworkTransmitter.deserializePayload (/media/maxli/Data/dev/OpenArcanum/node_modules/lance-gg/es5/network/NetworkTransmitter.js:111)
at Client.handleInboundMessage (/media/maxli/Data/dev/OpenArcanum/node_modules/lance-gg/es5/ClientEngine.js:448)
at Client.handleInboundMessage (Client.js:170)
at Client.step (/media/maxli/Data/dev/OpenArcanum/node_modules/lance-gg/es5/ClientEngine.js:339)
at Renderer.runClientStep (/media/maxli/Data/dev/OpenArcanum/node_modules/lance-gg/es5/render/Renderer.js:144)
at Renderer.draw (/media/maxli/Data/dev/OpenArcanum/node_modules/lance-gg/es5/render/Renderer.js:99)
at Renderer.draw (Renderer.js:27)
at renderLoop (/media/maxli/Data/dev/OpenArcanum/node_modules/lance-gg/es5/ClientEngine.js:220)
The DataView expects a ArrayBuffer, but plain Buffer is passed in constructor. The workaround is to override handleInboundMessage in ClientEngine and convert the buffer to ArrayBuffer :
handleInboundMessage(syncData) {
let buffer = Uint8Array.from(syncData.dataBuffer)
syncData.dataBuffer = buffer.buffer
super.handleInboundMessage(syncData)
}This works. However is quite inefficient IMHO. Any chance to fix this any soon?
Running in Electron 3.X.
Metadata
Metadata
Assignees
Labels
No labels