Archívum - Feb 28, 2012 - Fórum téma
Fájlok folyamatos kiszolgálása
Készítünk egy online node.js alapú alkalmazást, ahol a kliens tölt fel mp3-at, a szerver meg egy másiknak kiszolgálja. Minden szépen működik, amíg nem akarom streamesíteni az egészet.
Felfele szépen darabok ravágom kliens oldalon és chunkonként töltöm fel websocketen keresztül a bináris adatot, egy streamWriterrel írom a diskre.
A probléma a letöltésnél kezdődik, nem tudom rávenni a szervert (alap esetben express-t, de mást sem), hogy a Chrome/FF <audio> tagjának kérésére az egész fájlt szolgálja ki. Mindig a kérés pillanatában létező fájlméretet veszi figyelembe (és nem törődik pl. a Content-Length headerrel, EOF-nak veszi az "éhezést").
Van erre valakinek ötlete? (Hogy hogy lehet HTTP streamet megvalósítani.)
■ Felfele szépen darabok ravágom kliens oldalon és chunkonként töltöm fel websocketen keresztül a bináris adatot, egy streamWriterrel írom a diskre.
A probléma a letöltésnél kezdődik, nem tudom rávenni a szervert (alap esetben express-t, de mást sem), hogy a Chrome/FF <audio> tagjának kérésére az egész fájlt szolgálja ki. Mindig a kérés pillanatában létező fájlméretet veszi figyelembe (és nem törődik pl. a Content-Length headerrel, EOF-nak veszi az "éhezést").
Van erre valakinek ötlete? (Hogy hogy lehet HTTP streamet megvalósítani.)
Infinite sliding window
Sziasztok!
A következő a problémám:
Tegyük fel, hogy a kiválasztott elemünk a 10 és 3 elemnyi a környezet, ekkor a következő értékeket várom:
Ha a kiválasztott elem a 3, akkor a következőket:
Ha a kiválasztott elem a 18, akkor pedig következőket:
A fentit meg lehet valósítani 4 lekérdezéssel.És ebből szerver oldalon fel lehet építeni a kívánt listát.
De gondolom van itt valaki aki jobban ért az adatbázisokhoz, mint én, és meg tudja oldani MySQL alatt egy vagy két akár subquery-t használó lekérdezéssel.
■ A következő a problémám:
- Van egy táblám, elemekkel, amelyek meghatározott időrendben vannak, az egyszerűség kedvéért legyen az oszlop neve id és az értékek pedig egész számok.
- Szeretném lekérdezni a meghatározott elem környezetében levő elemeket egy kis csavarral
- Ha nincs elég elem a kiválasztott előtt, akkor a lista végéről kellene pótolni az elemeket.
- Ha nincs elég elem a kiválasztott után, akkor a lista elejéről kellene pótolni.
id | 1 | 3 | 5 | 7 | 9 | 10 | 12 | 14 | 16 | 18 | 21 | 24 |
---|
Tegyük fel, hogy a kiválasztott elemünk a 10 és 3 elemnyi a környezet, ekkor a következő értékeket várom:
5, 7, 9, *10*, 12, 14 16
.Ha a kiválasztott elem a 3, akkor a következőket:
21, 24, 1, *3*, 5, 7, 9
.Ha a kiválasztott elem a 18, akkor pedig következőket:
12, 14, 16, *18*, 21, 24, 1
. (A *-gal csak azt jelölöm, hogy az a kiválasztott, de a környezetére van csak igazából szükségem).A fentit meg lehet valósítani 4 lekérdezéssel.
SELECT id FROM `test` WHERE id > X ORDER BY id ASC LIMIT 3;
SELECT id FROM `test` WHERE id < X ORDER BY id DESC LIMIT 3;
SELECT id FROM `test` ORDER BY id DESC LIMIT 3;
SELECT id FROM `test` ORDER BY id ASC LIMIT 3;
De gondolom van itt valaki aki jobban ért az adatbázisokhoz, mint én, és meg tudja oldani MySQL alatt egy vagy két akár subquery-t használó lekérdezéssel.
Egy megadott sor "melletti" sorok
Egy már megadott sor előtti és utáni sorok lekérdezése.
Magyarázó kép mellékelve:
■ Magyarázó kép mellékelve: