Diskuze: Socket io nepodporuje UTF-8 znaky
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Ahoj, zkušenosti s tím nemám, ale v tebou odkazovaném článku je podobný kód, který ovšem příjmá data jako JSON. Není problém v tom?
private Emitter.Listener onNewMessage = new Emitter.Listener() {
@Override
public void call(final Object.. args) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
JSONObject data = (JSONObject) args[0];
String username;
String message;
try {
username = data.getString("username");
message = data.getString("message");
} catch (JSONException e) {
return;
}
// add the message to view
addMessage(username, message);
}
});
}
};
Jakého typu jsou objekty v parametru args? Jak je implementována metoda toString?
args[0].toString()
Ahoj, tady moje kompletní metoda onCreate vypadá momentálně následovně:
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
super.onCreate(savedInstanceState);
initialize();
chatContent = findViewById(R.id.main_chat_content);
this.socketManager.addEventListener("message", new Emitter.Listener() {
@Override
public void call(Object... args) {
runOnUiThread(new Runnable() {
@Override
public void run() {
addChatMessage((JSONObject) args[0]);
}
});
}
});
this.socketManager.connect("Homepage:default");
}
private void addChatMessage(JSONObject informations) {
try {
String username = informations.getString("username");
String content = informations.getString("content");
chatContent.append("\n" + username + ": " + content);
} catch (JSONException e) {
Log.wtf("MainActivity", "JSONEXCEPTION");
e.printStackTrace();
}
Log.wtf("CALLLL", informations.toString());
}
Přikládám soubor, jak vypadá dump json objektu, který dojde uživatelovi
přes webovou stránka.
A zde je log "CALLLL" (nepotřebné věci smazány):
{"picture":"https:\/\mujweb.cz\/images\/players\/profile\/obrazke.png","content":"~a","time":"Dnes v 20:20"}
Prostě místo '/' dostanu '\/' a ty háčky taky blbnou ...
Co jsem si však projížděl jejich demo aplikaci, tak to mám víceméně
stejně, ale i přes to jim to funguje a mě ne.
Akorát tam mám navíc:
IO.Options options = new IO.Options();
options.secure = true;
options.port = 8080;
a pak vytvořím Socket pomocí
socket = IO.socket(this.URLAdress, options);
Nevíš jak z toho ven ?
Díky moc
Bohužel nevím. Možná se jedná o chybu v knihovně nebo serveru. Těžko říct.
Třeba to nesouvisí, ale našel jsem chybu:
Unicode decode error for Non-English characters #430
https://github.com/…a/issues/430
Používáš poslední verze?
Zobrazeno 5 zpráv z 5.