new svelte files organisation for sockets and store

This commit is contained in:
simplonco
2023-01-08 15:35:19 +01:00
parent 4c0256e7b3
commit 272221071d
25 changed files with 7422 additions and 7542 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,70 +1,11 @@
<script lang="ts"> <script lang="ts">
import Layouts from './Chat_layouts.svelte'; import Layouts from './Chat_layouts.svelte';
import { init_socket } from './Socket_init';
export let color = "transparent"; export let color = "transparent";
/* web sockets with socket.io
*/
//import { socket, user } from './Chat_socket.svelte';
import { init_socket, socket, user } from './Socket';
import { msgs } from './Store_msg.js';
init_socket(); init_socket();
/*
async function socket_actions()
{
await init_socket();
// pbm: sometimes socket is still undefined here
socket.on('connect', function(){
console.log("socket.io connected");
});
socket.on('disconnect', function(){
console.log("socket.io disconnected");
});
socket.on('connect_error', function(){
console.log("socket.io connect_error");
});
socket.on('connect_timeout', function(){
console.log("socket.io connect_timeout");
});
socket.on('error', function(){
console.log("socket.io error");
});
socket.on('reconnect', function(){
console.log("socket.io reconnect");
});
socket.on('reconnect_attempt', function(){
console.log("socket.io reconnect_attempt");
});
socket.on('reconnecting', function(){
console.log("socket.io reconnecting");
});
socket.on('reconnect_error', function(){
console.log("socket.io reconnect_error");
});
socket.on('reconnect_failed', function(){
console.log("socket.io reconnect_failed");
});
socket.on('ping', function(){
console.log("socket.io ping");
});
socket.on('pong', function(){
console.log("socket.io pong");
});
socket.on('message', function(from, message)
{
console.log("received msg:", message, from);
if (from === user.username)
from = "me";
msgs.update(msgs => [...msgs, { content: message, name: from }]);
});
};
socket_actions();
*/
</script> </script>

View File

@@ -1,4 +1,3 @@
<script lang="ts"> <script lang="ts">
export let color; export let color;

View File

@@ -1,4 +1,3 @@
<script lang="ts"> <script lang="ts">
import Debug from './tmp_debug.svelte'; import Debug from './tmp_debug.svelte';
@@ -16,7 +15,7 @@
import MuteLayout from './Layout_mute.svelte'; import MuteLayout from './Layout_mute.svelte';
import UserLayout from './Layout_user.svelte'; import UserLayout from './Layout_user.svelte';
import Button from './Chat_button.svelte'; import Button from './Element_button.svelte';
/* global variables /* global variables
*/ */

View File

@@ -1,26 +0,0 @@
<script context="module">
import io from 'socket.io-client';
export let user;
export let socket;
const address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;
fetch(`${address}/api/v2/user`)
.then((resp) => resp.json())
.then((data) =>
{
user = data;
console.log("user:", user);
socket = io(address,
{
path: '/chat',
query:
{
username: user.username,
},
});
});
</script>

View File

@@ -1,7 +1,6 @@
<script> <script>
import Button from './Chat_button.svelte'; import Button from './Element_button.svelte';
export let layout; export let layout;
</script> </script>

View File

@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import Button from './Chat_button.svelte'; import Button from './Element_button.svelte';
import Warning from './Chat_warning.svelte'; import Warning from './Element_warning.svelte';
export let layout = ""; export let layout = "";
export let back = ""; export let back = "";

View File

@@ -1,10 +1,8 @@
<script> <script>
import { onMount } from 'svelte'; import { onMount } from 'svelte';
import Button from './Chat_button.svelte'; import Button from './Element_button.svelte';
import { msgs } from './Store_msg.js'; import { msgs, user } from './Store_chat';
import { user } from './Chat_socket.svelte';
export let layout; export let layout;
let rooms = [ let rooms = [

View File

@@ -1,7 +1,6 @@
<script> <script>
import Button from './Chat_button.svelte'; import Button from './Element_button.svelte';
export let layout = ""; export let layout = "";
export let back = ""; export let back = "";

View File

@@ -1,7 +1,6 @@
<script> <script>
import Button from './Chat_button.svelte'; import Button from './Element_button.svelte';
export let layout = ""; export let layout = "";
export let back = ""; export let back = "";

View File

@@ -1,7 +1,6 @@
<script> <script>
import Button from './Chat_button.svelte'; import Button from './Element_button.svelte';
export let layout = ""; export let layout = "";
export let back = ""; export let back = "";

View File

@@ -1,10 +1,8 @@
<script> <script>
import Button from './Chat_button.svelte'; import Button from './Element_button.svelte';
import Msg from './Chat_msg.svelte'; import Msg from './Element_msg.svelte';
import { socket } from './Chat_socket.svelte'; import { socket, msgs } from './Store_chat';
import { msgs } from './Store_msg.js';
export let layout = ""; export let layout = "";
export let back = ""; export let back = "";

View File

@@ -1,7 +1,6 @@
<script> <script>
import Button from './Chat_button.svelte'; import Button from './Element_button.svelte';
export let layout = ""; export let layout = "";
export let back = ""; export let back = "";

View File

@@ -1,7 +1,6 @@
<script> <script>
import Button from './Chat_button.svelte'; import Button from './Element_button.svelte';
export let layout = ""; export let layout = "";
export let back = ""; export let back = "";

View File

@@ -1,7 +1,6 @@
<script> <script>
import Button from './Chat_button.svelte'; import Button from './Element_button.svelte';
export let layout = ""; export let layout = "";
export let back = ""; export let back = "";

View File

@@ -0,0 +1,10 @@
export function socket_events(socket)
{
socket.on('message', function(from, message)
{
console.log("received msg:", message, from);
if (from === user.username)
from = "me";
msgs.update(msgs => [...msgs, { content: message, name: from }]);
});
}

View File

@@ -0,0 +1,28 @@
import io from 'socket.io-client';
import { set_socket, set_user } from './Store_chat';
import { socket_events } from './Socket_events';
import { connection_states } from './Socket_states';
const address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;
export async function init_socket()
{
const response = await fetch(`${address}/api/v2/user`);
const response_data = await response.json();
set_user(response_data);
let socket = await io(address,
{
path: '/chat',
query:
{
username: response_data.username,
},
});
set_socket(socket);
connection_states(socket);
socket_events(socket);
}

View File

@@ -1,45 +1,4 @@
export function connection_states(socket)
import io from 'socket.io-client';
export let user;
export let socket;
const address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;
export async function init_socket()
{
console.log("inside init_socket");
const response = await fetch(`${address}/api/v2/user`);
const response_data = await response.json();
user = response_data;
console.log("user:", user);
socket = await io(address,
{
path: '/chat',
query:
{
username: user.username,
},
})
console.log("socket:", socket);
connection_states();
socket_events();
}
function socket_events()
{
socket.on('message', function(from, message)
{
console.log("received msg:", message, from);
if (from === user.username)
from = "me";
msgs.update(msgs => [...msgs, { content: message, name: from }]);
});
}
function connection_states()
{ {
socket.on('connect', function(){ console.log("socket.io connected"); }); socket.on('connect', function(){ console.log("socket.io connected"); });
socket.on('disconnect', function(){ console.log("socket.io disconnected"); }); socket.on('disconnect', function(){ console.log("socket.io disconnected"); });

View File

@@ -0,0 +1,10 @@
import { writable } from 'svelte/store';
export let msgs = writable([]);
export let user;
export let socket;
export function set_user(new_user) { user = new_user; }
export function set_socket(new_socket) { socket = new_socket; }

View File

@@ -1,7 +0,0 @@
import { writable } from 'svelte/store';
export let user = writable({});
export let socket = writable({});
export let msgs = writable([]);