소스 검색

perf(setting): setting io

gemercheung 3 년 전
부모
커밋
55938385e8
12개의 변경된 파일79개의 추가작업 그리고 12개의 파일을 삭제
  1. 4 1
      .env
  2. 3 1
      .env.development
  3. 3 1
      .env.production
  4. 2 2
      demo/client1.html
  5. 2 2
      demo/index.html
  6. 2 2
      demo/socket.io.min.js
  7. 1 0
      docker-compose.yml
  8. 19 0
      package-lock.json
  9. 1 0
      package.json
  10. 1 1
      src/controller/syncActionController.js
  11. 4 2
      src/core/io.js
  12. 37 0
      start.sh

+ 4 - 1
.env

@@ -1,4 +1,7 @@
-PORT=3000
+PORT=12000
+SOCKET_PORT=5000
+CONTAINER_NAME='socket-chat-IM'
+SOCKET_PATH="/fsl-node"
 VOLUME_DIR=./data
 REDIS_HOST=redis
 REDIS_PORT=6379

+ 3 - 1
.env.development

@@ -1,4 +1,6 @@
-PORT=3000
+PORT=12000
+SOCKET_PORT=5000
+CONTAINER_NAME='socket-chat-IM'
 VOLUME_DIR=./data
 REDIS_HOST=127.0.0.1
 REDIS_PORT=6379

+ 3 - 1
.env.production

@@ -1,4 +1,6 @@
-PORT=3000
+PORT=12000
+SOCKET_PORT=5000
+CONTAINER_NAME='socket-chat-IM'
 VOLUME_DIR=./data
 REDIS_HOST=redis
 REDIS_PORT=6379

+ 2 - 2
demo/client1.html

@@ -19,8 +19,8 @@
       // 'http://47.115.43.159:3000'
       // var socket = io("http://0.0.0.0:3000");
       // const { roomId, userId, sceneNum, isClient, role, userLimitNum, roomType } = user
-      var socket = io("http://0.0.0.0:3000", {
-        path: "/test",
+      var socket = io("wss://testshop.4dkankan.com/", {
+        path: "fls-node",
         query: {
           userId: "user_001",
           sceneNum: "t-GusppsiKEC",

+ 2 - 2
demo/index.html

@@ -20,8 +20,8 @@
       // 'http://47.115.43.159:3000'
       // var socket = io("http://0.0.0.0:3000");
       // const { roomId, userId, sceneNum, isClient, role, userLimitNum, roomType } = user
-      var socket = io("http://0.0.0.0:3000", {
-        path: "/test",
+      var socket = io("wss://testshop.4dkankan.com", {
+        path: "/fls-node",
         query: {
           userId: "user_001",
           sceneNum: "t-GusppsiKEC",

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 2 - 2
demo/socket.io.min.js


+ 1 - 0
docker-compose.yml

@@ -3,6 +3,7 @@ version: "3.4"
 services:
   chat-socket:
     restart: always
+    container_name: $CONTAINER_NAME
     build:
       context: .
     ports:

+ 19 - 0
package-lock.json

@@ -21,6 +21,7 @@
         "recluster": "^1.0.0",
         "redis": "^4.0.2",
         "socket.io": "^4.4.1",
+        "socket.io-msgpack-parser": "^3.0.1",
         "uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.4.0",
         "winston": "^3.4.0"
       },
@@ -1492,6 +1493,15 @@
         "node": ">=10.0.0"
       }
     },
+    "node_modules/socket.io-msgpack-parser": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/socket.io-msgpack-parser/-/socket.io-msgpack-parser-3.0.1.tgz",
+      "integrity": "sha512-H/tlF8kp0TKcfiXEBvBE7fiHK+S0sgtG5zk6W+pWsJL+OggtiJLAatZE1YdvNmv274mSsgFzCrz39cYXFnyudQ==",
+      "dependencies": {
+        "component-emitter": "~1.3.0",
+        "notepack.io": "~2.2.0"
+      }
+    },
     "node_modules/socket.io-parser": {
       "version": "4.0.4",
       "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz",
@@ -2902,6 +2912,15 @@
         }
       }
     },
+    "socket.io-msgpack-parser": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/socket.io-msgpack-parser/-/socket.io-msgpack-parser-3.0.1.tgz",
+      "integrity": "sha512-H/tlF8kp0TKcfiXEBvBE7fiHK+S0sgtG5zk6W+pWsJL+OggtiJLAatZE1YdvNmv274mSsgFzCrz39cYXFnyudQ==",
+      "requires": {
+        "component-emitter": "~1.3.0",
+        "notepack.io": "~2.2.0"
+      }
+    },
     "socket.io-parser": {
       "version": "4.0.4",
       "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz",

+ 1 - 0
package.json

@@ -24,6 +24,7 @@
     "recluster": "^1.0.0",
     "redis": "^4.0.2",
     "socket.io": "^4.4.1",
+    "socket.io-msgpack-parser": "^3.0.1",
     "uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.4.0",
     "winston": "^3.4.0"
   },

+ 1 - 1
src/controller/syncActionController.js

@@ -17,7 +17,7 @@ export async function syncActionController(socket) {
   let user = socket.handshake.query;
   const { roomId, userId, sceneNum, isClient, role, userLimitNum, roomType, from } = user;
 
-  const syncId = `sync-${userId}${roomId}`;
+  const syncId = `sync-${userId}-${roomId}`;
   if (user) {
     if ("roomId" in user && "userId" in user) {
       joinSyncClient(syncId, userId, from, socket);

+ 4 - 2
src/core/io.js

@@ -5,15 +5,17 @@ import { instrument, RedisStore } from "@socket.io/admin-ui";
 import { createAdapter } from "@socket.io/redis-adapter";
 import { pubClient, subClient } from "../connection/redis.js";
 import { logger } from "./logger.js";
-
+// import customParser from "socket.io-msgpack-parser";
+console.log("process.env.SOCKET_PATH", process.env.SOCKET_PATH);
 const httpServer = http.createServer();
 const io = new Server(httpServer, {
   cors: {
     origin: "*",
   },
-  path: "/test",
+  path: process.env.SOCKET_PATH || "",
   pingInterval: 10000,
   pingTimeout: 5000,
+  // parser: customParser,
 });
 
 instrument(io, {

+ 37 - 0
start.sh

@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+
+if [ ! -f ".env" ]; then
+    cp env.example .env
+fi
+
+
+echo "port: $PORT"
+echo "SOCKET_PORT: $SOCKET_PORT"
+echo "CONTAINER_NAME: $CONTAINER_NAME"
+echo "SOCKET_PATH: $SOCKET_PATH"
+
+
+if [ ! "$(docker ps -q -f name=$CONTAINER_NAME))" ]; then
+    if [ "$(docker ps -aq -f status=exited -f name=$CONTAINER_NAME))" ]; then
+        # cleanup
+        docker rm $CONTAINER_NAME -f
+    fi
+    # run your container
+    echo "no container and docker-compose up"
+    docker-compose up --force-recreate -d
+else
+    if [ "$(docker ps -aq -f status=running -f name=$CONTAINER_NAME))" ]; then
+        # cleanup
+        docker rm $CONTAINER_NAME -f
+    fi
+    echo "has container and docker-compose up"
+    docker-compose up --force-recreate -d
+    
+fi
+
+# if [ "$(docker container inspect -f '{{.State.Status}}' $CONTAINER_NAME)" == "running" ]; then
+#     docker rm $CONTAINER_NAME -f
+#     docker-compose up -d
+# else
+#     docker-compose up -d
+# fi