KernelFreeze / WebSocketFabric

Use WebSockets as the Minecraft protocol transport layer
MIT License
27 stars 2 forks source link

¿Como usar? | Buildear y Host #1

Open nachitodev opened 2 years ago

nachitodev commented 2 years ago

Hola Kernel!

Estuve viendo tu proyecto y me parecio interesante la idea que tuviste, me interese en probarlo asi que decidi hacer un fork y buildearlo con Github Actions, este me dejo 2 JAR y queria saber si deberia introducirlos directamente como un mod para ambos lados (server y cliente), si hay alguna especificación mas ademas de el Fabric 0.14.8 y Minecraft 1.19 Me parece extraño que algo como un rework total del Networking de Minecraft me pese solo 599Kb.

Me parece un proyecto bastante divertido en el cual quiero experimentar y aprender, saludos.

PD: Sorry to the english speakers in this situation it is more comfortable for me to speak in spanish lol

nachitodev commented 2 years ago

Actualizo!

Use los jar tanto en cliente como en servidor y descubri bastante cosas interesantes, aun asi no lo pude hacer funcionar.

Server: 1 - Intente hostear el servidor en primer lugar en EC2 (AWS) sin tener exito, una vez descargado JDK & JRE 17, Instalado Fabric y haber puesto los mods necesarios el servidor no iniciaba sin razon aparente (intente cambiando el OS, RAM, vCPU, etc) asi que decidi cambiar el hosting. 2 - Usando un Hosting gratuito (Minehut) hice lo mismo y consegui que funcione pero con 2 errores que especifico aca:

[03:39:30] [ForkJoinPool-1-worker-2/WARN]: Mod io_netty_netty-codec-http uses the version 4.1.79.Final which isn't compatible with Loader's extended semantic version format (Could not parse version number component 'Final'!), SemVer is recommended for reliably evaluating dependencies and prioritizing newer version

[03:39:30] [ForkJoinPool-1-worker-2/WARN]: Mod websocketfabric uses the version ${version} which isn't compatible with Loader's extended semantic version format (Could not parse version number component '${version}'!), SemVer is recommended for reliably evaluating dependencies and prioritizing newer version

Ignorando estos errores decidi proseguir

Cliente: 1 - Luego de hostear el servidor minimamente decidi entrar con el Fabric 0.14.9 y Minecraft 1.19, ademas tambien acompañado de Mods de Optimización (Sodium & Sodium Extras) porque mi PC es desastrosamente mala, en la lista de servidores todos figuraban como desconectados, a la hora de entrar todos daban como "Disconnected" o "Connection Reset" (hasta el hosteado con el mod) asi que decidi probar algunas cosas. 2 - Probe unirme a servidores http (despues de todo el websocket es eso) y consegui que cosas como Google o Youtube lancen errores 304, 404, 401 y 403, tambien intente conectarme a servidores de websockets (hosteados con Express en NodeJS) y curiosamente se quedaba en una infinita carga. Mañana intentare de ver que dice la consola del Minecraft Cliente haber si puedo resolver algun bug!

nachitodev commented 2 years ago

Cree una pull request para mantener un poco vivo el proyecto y poder hacer mas facil el desarrollo, cree una github action que compila y hace una release automaticamente del mod #2

nachitodev commented 1 year ago

Actualización! Hacia meses Kernel me habia dicho que aparentemente era por la forma que se buildeaba el Jar (ya que al ser con github actionos aparentemente no hacia el reMapJar), pronto probaré con un entorno de desarrollo local.

TH3N3WN00B commented 1 year ago

Probe con Java 19, en Minecraft 1.19 con Fabric Loader 0.14.13 tanto en cliente y servidor, como solo cliente y solo en servidor, y no me sirvio de ninguna forma, ojo, use el websocket ''WebSocketFabric-1.0-SNAPSHOT'' y el error que obtuve fue el siguiente

Rigorberto lost connection: Internal Exception: io.netty.handler.codec.DecoderException: java.io.IOException: Packet 0/2 (class_4210) was larger than I expected, found 114 bytes extra whilst reading packet 2

Este error solo pasa cuando websocket esta en cliente y servidor

nachitodev commented 1 year ago

Luego de habrias pruebo llego al mismo resultado con Java 19, en Minecraft 1.19 y con el Fabric Loader 0.14.9, Adjunto screenshots. WebsocketFabric - 02 WebsocketFabric - 03 WebsocketFabric - 04 WebsocketFabric - 05

Cabe que aclarar que esto ocurra aun habiendo usado la version con el remapJar

nachitodev commented 1 year ago

Sospecho que se debe a algun error en el Handshake entre el servidor y el cliente con el packet inicial, voy a probar la utilizacion de un Proxy para interceptar los paquetes y ver si se puede ver algo. Si algo quiere usarlo para investigar en este proyecto o en otros aqui se los dejo: Sniffcraft a proxy to inspect minecraft packets

TH3N3WN00B commented 1 year ago

Tambien, no se si es un bug o esta hecho a proposito, pero cuando me pongo el mod en el cliente, no puedo entrar a ningun server a menos que tambien tenga el mod pero depues aparece el error de arriba asi que tampoco me deja entrar totalmente

nachitodev commented 1 year ago

Es normal eso, ya que al no usar el networking de todos los servidores no puede asociarse a ellos ni conectarse pero al funcionar con websockets por ejemplo a conectarse a google.com:80 te da un error 301 de Redirecting propio de HTTP.