JoinServer MU Online: Guia Completo de Configuração, Login e Erros
Entenda como funciona o JoinServer do MU Online, sua relação com GameServer, contas e autenticação, como configurar IP, portas e SQL, além de corrigir os principais erros de login e conexão do servidor.
O JoinServer do MU Online é um componente encontrado em muitas arquiteturas tradicionais de servidor e está diretamente relacionado à autenticação e controle de sessões das contas.
Quando o JoinServer está configurado incorretamente, podem surgir problemas como login que não funciona, conta desconectada, GameServer que não consegue autenticar jogadores, usuário já conectado ou falhas de comunicação entre os serviços.
Neste guia do Aprendiz MU Online, você vai entender como o JoinServer funciona, quais configurações precisam ser verificadas e como diagnosticar os principais erros.
O que é o JoinServer do MU Online?
O JoinServer é um serviço utilizado por várias versões de server files MU Online para auxiliar no processo de autenticação das contas e gerenciamento de sessões.
Dependendo da source, ele recebe solicitações do GameServer, verifica informações relacionadas à conta e retorna o resultado necessário para continuar ou rejeitar o login.
Para que serve o JoinServer?
Dependendo da implementação, ele pode participar de tarefas como:
- autenticação de contas;
- verificação de login e senha;
- controle de conta conectada;
- controle de sessão;
- comunicação entre GameServer e sistema de contas;
- status online/offline;
- recusa de conexões inválidas.
A implementação muda conforme a source.
Como funciona a autenticação no MU Online?
Uma arquitetura simplificada pode ser representada assim:
Cliente MU Online
|
v
ConnectServer
|
v
GameServer
|
v
JoinServer
|
v
Sistema de contas / SQL Server
|
v
Login permitido ou recusado
Esse fluxo pode variar, mas ajuda a entender por que uma falha no JoinServer pode impedir o jogador de passar da tela de login.
Onde configurar o JoinServer?
A estrutura depende do projeto.
Você poderá encontrar arquivos como:
JoinServer.ini
JoinServer.cfg
JoinServerInfo.dat
ServerInfo.dat
Config.ini
JoinServer.xml
Procure configurações relacionadas a:
SQLServer
Database
User
Password
Port
ServerIP
ODBC
DSN
JoinServer e GameServer
O GameServer normalmente precisa saber onde encontrar o JoinServer.
Conceitualmente:
GameServer
|
| IP + Porta
v
JoinServer
Se o IP ou a porta estiverem incorretos, o GameServer poderá apresentar mensagens de conexão recusada ou simplesmente falhar ao autenticar jogadores.
GameServer não conecta no JoinServer
Verifique:
- JoinServer iniciado;
- IP correto;
- porta correta;
- firewall;
- compatibilidade entre os executáveis;
- ServerCode quando aplicável.
JoinServer e SQL Server
Em várias implementações, o JoinServer precisa acessar dados relacionados às contas.
Portanto, uma falha na conexão com o SQL pode afetar diretamente o sistema de login.
Verifique:
- SQL Server iniciado;
- servidor ou instância correta;
- database correta;
- usuário e senha;
- permissões;
- ODBC quando utilizado.
JoinServer com ODBC Connect Fail
Server files mais antigos podem utilizar ODBC.
Nesse cenário, você poderá encontrar:
ODBC Connect Fail
Confira:
- DSN criado;
- nome correto;
- ODBC 32 bits ou 64 bits;
- driver SQL;
- servidor SQL;
- usuário e senha.
ODBC 32 bits
C:\Windows\SysWOW64\odbcad32.exe
ODBC 64 bits
C:\Windows\System32\odbcad32.exe
IP e porta do JoinServer
A porta varia entre diferentes projetos.
Portanto, não copie números de outros tutoriais sem conferir seus próprios arquivos.
Procure por parâmetros como:
JoinServerIP
JoinServerPort
ServerIP
ServerPort
ListenPort
A porta utilizada pelo GameServer para conectar deve ser a mesma porta na qual o JoinServer está escutando.
Como verificar se o JoinServer está escutando?
Descubra primeiro a porta configurada.
Depois execute:
netstat -ano | findstr :PORTA
Substitua PORTA pelo número real.
Uma entrada com:
LISTENING
indica que existe um processo aguardando conexões naquela porta.
Login do MU Online não funciona
Se a sala aparece, o cliente chega à tela de login, mas a conta não autentica, o JoinServer passa a ser um dos componentes que devem ser investigados.
Confira:
- GameServer conectado ao JoinServer;
- JoinServer conectado ao sistema de contas;
- database disponível;
- conta realmente existente;
- senha armazenada no formato esperado pela source;
- estrutura da tabela de contas compatível.
Usuário ou senha incorretos mesmo estando certos
Esse cenário pode acontecer quando existe incompatibilidade entre a forma como o site grava a senha e a forma como o JoinServer espera encontrá-la.
Dependendo do projeto, senhas podem estar:
- em texto direto;
- transformadas por procedure;
- utilizando sistema de criptografia específico;
- limitadas por tamanho de coluna.
Portanto, se contas antigas entram e contas novas não, compare o método utilizado para cadastrar os usuários.
Conta aparece como já conectada
Um erro bastante comum ocorre quando o jogador é desconectado de forma anormal e o servidor ainda considera a conta online.
Podem surgir mensagens equivalentes a:
Account already connected
User already connected
Already connected
Nesse caso, investigue:
- controle de sessão do JoinServer;
- status armazenado pela source;
- GameServer encerrado de forma incorreta;
- registros de conexão não finalizados;
- serviço responsável por atualizar status online.
Jogador desconecta depois do login
O momento da desconexão ajuda a localizar a causa.
| Etapa | Onde investigar |
|---|---|
| Lista nem aparece | ConnectServer. |
| Sala aparece e cai | GameServer, IP e porta. |
| Chega no login e não autentica | JoinServer e contas. |
| Login aceita e cai | JoinServer, GameServer e sessão. |
| Seleciona personagem e cai | DataServer, SQL e GameServer. |
Principais erros do JoinServer
| Problema | O que verificar |
|---|---|
| JoinServer não abre | DLL, configuração e dependências. |
| ODBC Connect Fail | DSN, driver e SQL. |
| SQL Connect Fail | Servidor, usuário, senha e database. |
| GameServer não conecta | IP, porta e firewall. |
| Login não funciona | Conta, senha, database e JoinServer. |
| Account already connected | Controle de sessão e status online. |
| Invalid column name | Database incompatível. |
| Stored procedure não encontrada | Scripts SQL incompletos. |
JoinServer fecha sozinho
Se o JoinServer abre e fecha imediatamente, procure:
- log da aplicação;
- erro de SQL;
- ODBC;
- DLL ausente;
- porta em uso;
- arquivo de configuração inválido;
- database incompatível.
Também vale conferir o Visualizador de Eventos do Windows quando ocorre uma falha do processo.
JoinServer e database incompatível
Um JoinServer de outra source pode tentar consultar colunas ou procedures que não existem na sua database.
Exemplos:
Invalid column name
Invalid object name
Could not find stored procedure
Isso geralmente significa que a comunicação com o SQL já foi estabelecida, mas a estrutura encontrada é diferente da esperada.
Ordem recomendada para abrir o servidor
A sequência depende da source, mas uma estrutura comum pode ser:
1. SQL Server
2. DataServer
3. JoinServer
4. ConnectServer
5. Serviços auxiliares
6. GameServer
Assim, quando o GameServer iniciar, os serviços necessários para autenticação e dados já estarão disponíveis.
Como diagnosticar o JoinServer passo a passo
Checklist do JoinServer MU Online
| Verificação | Resultado esperado |
|---|---|
| JoinServer.exe | Inicia sem erro crítico. |
| SQL Server | Disponível. |
| Database | Online e compatível. |
| ODBC | Funcionando quando utilizado. |
| IP | Configurado corretamente. |
| Porta | Escutando. |
| GameServer | Conectado ao JoinServer. |
| Conta | Existe na database. |
| Senha | No formato esperado pela source. |
| Sessão | Status atualizado corretamente. |
| Scripts SQL | Procedures necessárias instaladas. |
| Logs | Sem erros críticos. |
Perguntas frequentes sobre JoinServer
O que é JoinServer no MU Online?
É um serviço utilizado em várias arquiteturas de MU Online para participar da autenticação de contas e controle de sessões.
JoinServer precisa de SQL Server?
Depende da implementação, mas muitas versões utilizam dados armazenados em database para autenticação ou controle de contas.
Por que o GameServer não conecta no JoinServer?
Verifique IP, porta, firewall, se o JoinServer está iniciado e se os executáveis pertencem à mesma source.
JoinServer pode causar erro de login?
Sim. Se a autenticação ou comunicação com a camada de contas falhar, o jogador pode não conseguir entrar.
O que significa Account Already Connected?
Significa que o servidor ainda considera aquela conta com uma sessão ativa. Verifique controle de sessão, GameServer e status online.
ODBC Connect Fail pode ocorrer no JoinServer?
Sim, quando aquela implementação utiliza ODBC para acessar a database. Verifique DSN, arquitetura 32/64 bits e SQL.
JoinServer fecha sozinho. O que fazer?
Leia o log, verifique SQL, ODBC, DLLs, porta, configuração e compatibilidade da database com a source.
Conclusão
O JoinServer MU Online é um componente essencial em muitas arquiteturas tradicionais porque participa diretamente da autenticação e controle de sessões dos jogadores.
Quando existem problemas de login, comece verificando se o GameServer realmente está conectado ao JoinServer. Depois confira SQL, database, ODBC, IP, porta e estrutura das contas.
Se a sala aparece e a conexão chega até a tela de login, mas o jogador não consegue autenticar, o JoinServer passa a ser uma das peças mais importantes no diagnóstico.
Essa metodologia ajuda bastante em servidores MU Online 97D, 99z, Season 2, Season 6 e projetos personalizados.