Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5b905bac24 | ||
![]() |
e320156a47 | ||
![]() |
c58dbf34d0 | ||
![]() |
472a446d3a |
@@ -48,6 +48,10 @@ func main() {
|
|||||||
Debug: *debug,
|
Debug: *debug,
|
||||||
TerminalOut: true,
|
TerminalOut: true,
|
||||||
})
|
})
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("main new logger", err.Error())
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
//new login manager
|
//new login manager
|
||||||
loginManager, err := login.NewLoginManager(".")
|
loginManager, err := login.NewLoginManager(".")
|
||||||
@@ -62,8 +66,20 @@ func main() {
|
|||||||
// new server
|
// new server
|
||||||
s := server.NewServer()
|
s := server.NewServer()
|
||||||
|
|
||||||
|
//get local ip
|
||||||
|
origins := []string{"http://localhost:9000"}
|
||||||
|
origins = append(origins, "http://localhost:9500")
|
||||||
|
|
||||||
|
localIP, err := utils.GetLocalIP()
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("main", fmt.Sprintf("get local ip : %s", err.Error()))
|
||||||
|
} else {
|
||||||
|
origins = append(origins, fmt.Sprintf("http://%s:9000", localIP))
|
||||||
|
origins = append(origins, fmt.Sprintf("http://%s:9500", localIP))
|
||||||
|
}
|
||||||
|
fmt.Println(123, origins)
|
||||||
s.Routes.Use(cors.New(cors.Config{
|
s.Routes.Use(cors.New(cors.Config{
|
||||||
AllowOrigins: []string{"http://localhost:9000"},
|
AllowOrigins: origins,
|
||||||
AllowMethods: []string{"POST", "GET", "DELETE", "OPTIONS"},
|
AllowMethods: []string{"POST", "GET", "DELETE", "OPTIONS"},
|
||||||
AllowHeaders: []string{"Origin", "Content-Type"},
|
AllowHeaders: []string{"Origin", "Content-Type"},
|
||||||
AllowCredentials: true,
|
AllowCredentials: true,
|
||||||
@@ -104,7 +120,6 @@ func main() {
|
|||||||
logger.Error("main", fmt.Sprintf("starting browser error : %s", err.Error()))
|
logger.Error("main", fmt.Sprintf("starting browser error : %s", err.Error()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
fmt.Println(3, *ip, *port)
|
|
||||||
// start http server
|
// start http server
|
||||||
logger.Info("main", fmt.Sprintf("http listen on ip: %s port: %d", *ip, *port))
|
logger.Info("main", fmt.Sprintf("http listen on ip: %s port: %d", *ip, *port))
|
||||||
if err := s.ServeHttp(*ip, *port); err != nil {
|
if err := s.ServeHttp(*ip, *port); err != nil {
|
||||||
|
22
backend/utils/ip.go
Normal file
22
backend/utils/ip.go
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"net"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetLocalIP() (string, error) {
|
||||||
|
addrs, err := net.InterfaceAddrs()
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, addr := range addrs {
|
||||||
|
if ipNet, ok := addr.(*net.IPNet); ok && !ipNet.IP.IsLoopback() {
|
||||||
|
if ipNet.IP.To4() != nil {
|
||||||
|
return ipNet.IP.String(), nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "", fmt.Errorf("no local IP address found")
|
||||||
|
}
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "lightcontrol",
|
"name": "lightcontrol",
|
||||||
"version": "0.0.15",
|
"version": "0.0.17",
|
||||||
"description": "A Tecamino App",
|
"description": "A Tecamino App",
|
||||||
"productName": "Light Control",
|
"productName": "Light Control",
|
||||||
"author": "A. Zuercher",
|
"author": "A. Zuercher",
|
||||||
|
@@ -4,8 +4,8 @@ import { initWebSocket } from 'src/services/websocket';
|
|||||||
|
|
||||||
export default boot(({ app }) => {
|
export default boot(({ app }) => {
|
||||||
const $q = app.config.globalProperties.$q as QVueGlobals;
|
const $q = app.config.globalProperties.$q as QVueGlobals;
|
||||||
const host = window.location.hostname; // gets current domain or IP
|
const host = window.location.hostname;
|
||||||
const port = 8100; // your WebSocket port
|
const port = 8100;
|
||||||
|
|
||||||
const randomId = Math.floor(Math.random() * 10001); // random number from 0 to 10000
|
const randomId = Math.floor(Math.random() * 10001); // random number from 0 to 10000
|
||||||
const ws = initWebSocket(`ws://${host}:${port}/ws?id=q${randomId}`, $q);
|
const ws = initWebSocket(`ws://${host}:${port}/ws?id=q${randomId}`, $q);
|
||||||
|
@@ -133,9 +133,12 @@ const newScene = reactive<Scene>({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const scenes = ref<Scene[]>([]);
|
const scenes = ref<Scene[]>([]);
|
||||||
|
const host = window.location.hostname;
|
||||||
|
const port = 9500;
|
||||||
|
const baseURL = `http://${host}:${port}`;
|
||||||
|
|
||||||
const quasarApi = axios.create({
|
const quasarApi = axios.create({
|
||||||
baseURL: `http://localhost:9500`,
|
baseURL: baseURL,
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
@@ -150,7 +153,9 @@ onMounted(() => {
|
|||||||
scenes.value = resp.data;
|
scenes.value = resp.data;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => NotifyResponse($q, err.response.data.error, 'error'));
|
.catch((err) => {
|
||||||
|
NotifyResponse($q, err.response.data.error, 'error');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function removeScene(name: string) {
|
function removeScene(name: string) {
|
||||||
|
@@ -3,15 +3,17 @@
|
|||||||
<q-header elevated>
|
<q-header elevated>
|
||||||
<q-toolbar>
|
<q-toolbar>
|
||||||
<q-img
|
<q-img
|
||||||
src="src/assets/LOGO_CF-ICON_color.svg"
|
:src="logo"
|
||||||
alt="Logo"
|
alt="Logo"
|
||||||
style="width: 40px; height: 40px; background-color: var(--q-primary)"
|
style="width: 40px; height: 40px; background-color: var(--q-primary)"
|
||||||
class="q-mr-sm"
|
class="q-mr-sm"
|
||||||
/>
|
/>
|
||||||
<q-btn flat dense round icon="menu" aria-label="Menu" @click="toggleLeftDrawer" />
|
<q-btn flat dense round icon="menu" aria-label="Menu" @click="toggleLeftDrawer" />
|
||||||
|
|
||||||
<q-toolbar-title> Light Control </q-toolbar-title>
|
<q-toolbar-title> Light Control </q-toolbar-title>
|
||||||
|
|
||||||
<div>Version {{ version }}</div>
|
<div>Version {{ version }}</div>
|
||||||
|
<q-btn dense icon="refresh" square class="q-px-md q-ml-md" @click="refresh" />
|
||||||
</q-toolbar>
|
</q-toolbar>
|
||||||
</q-header>
|
</q-header>
|
||||||
|
|
||||||
@@ -35,6 +37,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import logo from 'src/assets/LOGO_CF-ICON_color.svg';
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { version } from '../..//package.json';
|
import { version } from '../..//package.json';
|
||||||
|
|
||||||
@@ -47,4 +50,8 @@ function toggleLeftDrawer() {
|
|||||||
function closeDrawer() {
|
function closeDrawer() {
|
||||||
leftDrawerOpen.value = false;
|
leftDrawerOpen.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function refresh() {
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
Reference in New Issue
Block a user