이 프로젝트는 r/Place에서 영감을 받았습니다. 개별 픽셀을 그릴 수 있는 온라인 공유 캔버스입니다.
이 프로젝트는 pl.g7kk.com에서 온라인으로 진행됩니다.
Go 컴파일러를 사용하여 place.go를 컴파일해야 합니다.
go build
실행하세요.
cd ./place
go build cmd/place/place.go
또는 go install
사용하세요.
cd ./place
go install cmd/place/place.go
place를 실행하고 -root 인수를 web/root 디렉터리 위치로 설정합니다. 실행할 때 다른 설정을 구성할 수도 있습니다(아래 참조).
place -root web/root -port :8080
- 루트 문자열
웹 파일이 있는 디렉터리입니다. (기본값 "./root")
-카운트 정수
최대 연결 수입니다. (기본값 64)
-너비 정수
캔버스를 만드는 너비입니다. (기본값 1024)
-높이 정수
캔버스를 만드는 높이입니다. (기본값 1024)
-로드 문자열
캔버스로 로드할 png입니다. (설정하지 않으면 빈 캔버스가 생성됩니다)
-문자열 저장
캔버스를 저장할 이름입니다. (기본값 "./place.png")
-로그 문자열
쓸 로그 파일입니다. (설정하지 않으면 명령줄에 기록됩니다.)
- 포트 문자열
서버가 수신 대기하는 포트입니다. (기본값 ":8080")
-sinterval 정수
간격을 초 단위로 저장합니다. (기본값 180)
-wl (값 없음) 화이트리스트를 활성화합니다.
-whitelist string 화이트리스트의 경로입니다. (기본값은 "whitelist.csv")
-loadRecord string 로드할 레코드 이미지의 경로입니다. (설정하지 않은 경우 빈 레코드를 생성합니다)
-saveRecord string 녹화 이미지를 저장할 경로입니다. (기본값은 "record.png")
선택적으로 화이트리스트를 추가할 수 있습니다. 화이트리스트가 활성화되면 키가 있는 사용자만 캔버스에 그림을 그릴 수 있습니다. 서버는 또한 누가 각 픽셀을 배치했는지 기록을 유지합니다.
화이트리스트를 사용하려면 먼저 csv 문서를 생성하세요. 각 사용자는 기록에서 자신을 식별할 수 있는 개인 키와 ID를 갖게 됩니다. 키는 긴 문자열이어야 하며 ID는 [1,65535] 범위의 정수여야 합니다.
키에 uuid를 사용하는 것이 좋습니다. 예를 들어:
2237701c-7558-4424-95e1-beee4f6a406a,1
f9e41cf2-0e5d-43f2-bffd-5e2f1aab0a3b,2
4917ba68-41be-4956-93a7-0563257ff182,3
79df0674-f6d5-4556-baad-992e81f72bb2,65535
녹화 이미지의 픽셀 색상은 화이트리스트의 ID에 해당합니다.
-wl 인수를 사용하여 화이트리스트를 활성화하면 작업 디렉터리에서 "whitelist.csv"라는 파일을 찾습니다. 하지만 자신만의 경로를 설정할 수도 있습니다.
place -wl -whitelist my_white_list.csv
캔버스를 로드하기 위한 -load와 유사한 -loadRecord를 사용하여 기존 레코드 이미지를 로드할 수도 있습니다.
place -load place.png -wl -loadRecord record.csv
-wl 인수를 포함하지 않으면 화이트리스트와 레코드가 무시됩니다.
쉽게 서버를 다시 시작하거나 캔버스를 롤백할 수 있도록 일부 스크립트를 설정하는 것이 좋습니다.
이 스크립트는 서버를 종료하고 이전 캔버스로 다시 시작합니다. 캔버스는 재설정 되지 않습니다 .
내 서버에는 이 스크립트가 밤마다 실행되어 느린 웹소켓 연결을 제거하는 cron 작업으로 설정되어 있습니다.
cd ~ /go/src/place/web
pkill place
~ /go/bin/place -port :80 -load place.png & > place.log &
이 스크립트는 캔버스를 이전에 저장된 이미지로 롤백합니다.
cd ~ /go/src/place/web
pkill place
cp place_rollback.png place.png
~ /go/bin/place -port :80 -load place.png & > place.log &