• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Websocket export

Object Storage Arubacloud
+1 głos
266 wizyt
pytanie zadane 30 października 2022 w JavaScript przez JaaO Początkujący (490 p.)

Czy jest sposób, żeby exportować to co przypisałem do Core.Websocket? Chciałbym tego użyć w innym module, ale po exporcie serwer altV przestaje działać. Po zakomentowaniu ostatniej linijki wszystko działa.import { io } from "socket.io-client" const Core = {}; Core.Vehicles = vehicles; Core.Websocket = io("https://localhost:3000", { secure: true, reconnection: true, rejectUnauthorized: false }); Core.Websocket.emit('chat message', "Serwer ALTV został podłączony do systemu") export default {Core};

import { io } from "socket.io-client"



const Core = {};

Core.Vehicles = vehicles;
Core.Websocket = io("https://localhost:3000",  { secure: true, reconnection: true, rejectUnauthorized: false });
Core.Websocket.emit('chat message', "Serwer ALTV został podłączony do systemu")

export default {Core};

 

komentarz 30 października 2022 przez ScriptyChris Mędrzec (190,190 p.)

Czyli skrypt działa, jeśli nie ma w nim tej linijki?

export default {Core};

Czy pojawia się w związku z tym jakiś błąd? Gdzie to importujesz i co z tym dalej robisz?

komentarz 30 października 2022 przez JaaO Początkujący (490 p.)
edycja 30 października 2022 przez JaaO
Importuje to w innym zasobie (module), błędu nie mogę podejrzeć, ponieważ serwer altV mi się w ogóle nie uruchamia.

Błąd: Segmentation fault (core dumped)

Struktura folderu resources:
-- config (tutaj exportuje)

-- chat  (tutaj importuje)

Jeżeli usunę import to problem nadal występuje, serwer zatrzymuje się na zasobie config.
komentarz 30 października 2022 przez ScriptyChris Mędrzec (190,190 p.)
W jaki sposób to uruchamiasz?
komentarz 30 października 2022 przez JaaO Początkujący (490 p.)
Przez program altv-server z altv.mp
komentarz 30 października 2022 przez ScriptyChris Mędrzec (190,190 p.)
Próbowałeś włączać tryb debugowania?

https://docs.altv.mp/js/articles/setup.html#using-debug-mode-client
komentarz 30 października 2022 przez JaaO Początkujący (490 p.)

Tak, tryb debugowania mam włączony i na serwerze i na cliencie. Tutaj logi z uruchomienia programu:

jaao@vps-87984340:/var/altv-server$ ./altv-server 
[15:48:49] alt:V Server 12.20 (release)
[15:48:49] Starting Life Story on lstory.eu:7788
[15:48:49][Warning] Running a production server without a CDN is highly discouraged, consider setting a CDN URL
[15:48:49] Loading resource api
Debugger listening on ws://lstory.eu:9229/cb528184-e419-40dc-a405-e7286c9aa3d2
For help, see: https://nodejs.org/en/docs/inspector
(node:1097821) ExperimentalWarning: Fetch is an experimental feature. This feature could change at any time
    at emitExperimentalWarning (node:internal/util:224:11)
    at setupFetch (node:internal/bootstrap/pre_execution:157:3)
    at prepareMainThreadExecution (node:internal/bootstrap/pre_execution:37:3)
    at node:internal/bootstrap/environment:12:1
[15:48:50][Warning] Using the module "node-fetch" can cause problems. Reason: Console hangs
[15:48:50] Loaded resource api
[15:48:50] Loading resource config
Starting inspector on lstory.eu:9229 failed: address already in use
(node:1097821) ExperimentalWarning: Fetch is an experimental feature. This feature could change at any time
    at emitExperimentalWarning (node:internal/util:224:11)
    at setupFetch (node:internal/bootstrap/pre_execution:157:3)
    at prepareMainThreadExecution (node:internal/bootstrap/pre_execution:37:3)
    at node:internal/bootstrap/environment:12:1
[15:48:50][Warning] Using the module "node-fetch" can cause problems. Reason: Console hangs
Segmentation fault (core dumped)

 

Warning z node-fetch nie ma znaczenia, nie jest związany z problemem.

komentarz 30 października 2022 przez ScriptyChris Mędrzec (190,190 p.)

Debugger listening on ws://lstory.eu:9229/cb528184-e419-40dc-a405-e7286c9aa3d2

Spróbuj podpiąć się debuggerem.

komentarz 30 października 2022 przez JaaO Początkujący (490 p.)
Debug pusty, połączenie z debugiem wyrzuca razem z serwerem w momencie uruchomienia zasobu config z tym exportem.

 

Zaznaczę, że błąd występuje wyłącznie w przypadku exportu websocketa, zwykłe zmienne, obiekty itd. można exportować bez problemu.
komentarz 30 października 2022 przez ScriptyChris Mędrzec (190,190 p.)

A taki export z importem zadziałają?

export const getCore = () => Core;

//
import { getCore } from 'path/to/module';
const Core = getCore();

 

komentarz 30 października 2022 przez JaaO Początkujący (490 p.)

Export działa, zasób config się ładuje, wyrzuca program w momencie:

const Core = getCore();

 

komentarz 30 października 2022 przez ScriptyChris Mędrzec (190,190 p.)
Z jakim błędem tym razem?
komentarz 30 października 2022 przez JaaO Początkujący (490 p.)
Nadal segmentation fault (core dumped)
komentarz 30 października 2022 przez ScriptyChris Mędrzec (190,190 p.)
Nie wiem dlaczego tak się dzieje.
1
komentarz 30 października 2022 przez JaaO Początkujący (490 p.)

Od Developera altV otrzymałem odpowiedź: 

You can't export complex types to other resources

Keep everything in one resource

więc zostaje mi jedynie zrobienie osobnego zasobu, w którym będzie połączenie z websocketem, sprawdzanie tego połączenia oraz funkcje:

function socketOn (event, callback) {
socket.on(event, callback)
}

function socketEmit (event, args) {
socket.emit(event, args)
}

które już mogę exportować  

1 odpowiedź

0 głosów
odpowiedź 30 października 2022 przez JaaO Początkujący (490 p.)

Jeśli ktoś w przyszłości będzie miał podobny problem, oto rozwiązanie:

import * as alt from "alt-server"
import { io } from "socket.io-client"

const socket = io("",  { secure: true, reconnection: true, rejectUnauthorized: false })

socket.emit("chat message", "Serwer altV został podłączony do systemu.")

export function socketOn(event, callback) {
    socket.on(event, callback)
}

export function socketEmit(event, args) {
    socket.emit(event, args)
}

const Websocket = {}

Websocket.on = socketOn
Websocket.emit = socketEmit

export default Websocket

 

Podobne pytania

0 głosów
1 odpowiedź 42 wizyt
0 głosów
1 odpowiedź 578 wizyt
pytanie zadane 7 czerwca 2021 w JavaScript przez rafaeru Początkujący (330 p.)
0 głosów
0 odpowiedzi 126 wizyt
pytanie zadane 27 sierpnia 2020 w JavaScript przez Massacra Nowicjusz (120 p.)

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...