Compare commits
	
		
			4 Commits
		
	
	
		
			c2e834a67a
			...
			49cebb9f0a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 49cebb9f0a | |||
| c10eca266a | |||
| 3fcb1fb8f5 | |||
| fce7419c55 | 
							
								
								
									
										3
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | node_modules | ||||||
|  | dist | ||||||
|  | .env.development | ||||||
							
								
								
									
										20
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | |||||||
|  | FROM node:19.4-alpine AS frontend | ||||||
|  | 
 | ||||||
|  | ARG server_url | ||||||
|  | RUN test -n "${server_url}" | ||||||
|  | 
 | ||||||
|  | COPY glebby-client /glebby-client | ||||||
|  | WORKDIR /glebby-client | ||||||
|  | RUN npm install | ||||||
|  | ENV VITE_GLEBBY_SERVER_URL=${server_url} | ||||||
|  | RUN npx vite build --outDir static | ||||||
|  | 
 | ||||||
|  | FROM python:3.11-alpine | ||||||
|  | 
 | ||||||
|  | COPY glebby-server /glebby-server | ||||||
|  | WORKDIR /glebby-server | ||||||
|  | RUN pip install -r requirements.txt | ||||||
|  | RUN pip install gunicorn | ||||||
|  | COPY --from=frontend /glebby-client/static /glebby-server/static | ||||||
|  | 
 | ||||||
|  | CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--threads", "100", "glebby:app"] | ||||||
							
								
								
									
										5
									
								
								TODO.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								TODO.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | - [ ] composition api | ||||||
|  | - [ ] quart | ||||||
|  | - [ ] lobby | ||||||
|  | - [ ] actual game logic | ||||||
|  | - [ ] websocket url config | ||||||
| @ -11,6 +11,7 @@ export default { | |||||||
|     Game |     Game | ||||||
|   }, |   }, | ||||||
|   data(): { ws: WebSocket, model: any } { |   data(): { ws: WebSocket, model: any } { | ||||||
|  |     console.log(import.meta.env.VITE_GLEBBY_SERVER_URL) | ||||||
|     return { |     return { | ||||||
|       ws: new WebSocket(import.meta.env.VITE_GLEBBY_SERVER_URL), |       ws: new WebSocket(import.meta.env.VITE_GLEBBY_SERVER_URL), | ||||||
|       model: null |       model: null | ||||||
|  | |||||||
| @ -128,7 +128,7 @@ export default defineComponent({ | |||||||
|       <div class="chatbox-scroller"> |       <div class="chatbox-scroller"> | ||||||
|         <div class="chatbox-scroller-content"> |         <div class="chatbox-scroller-content"> | ||||||
|           <div v-for="message in chatMessages" class="chatbox-message"> |           <div v-for="message in chatMessages" class="chatbox-message"> | ||||||
|             <code>{{ model.players.get(message.from)!.name }}#{{ message.from }}:</code> {{ message.message }} |             <code v-if="model.players.get(message.from)">{{ model.players.get(message.from)!.name }}#{{ message.from }}:</code> {{ message.message }} | ||||||
|           </div> |           </div> | ||||||
|         </div> |         </div> | ||||||
|       </div> |       </div> | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								glebby-server/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								glebby-server/.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,2 +1,3 @@ | |||||||
| venv | venv | ||||||
| __pycache__ | __pycache__ | ||||||
|  | static | ||||||
|  | |||||||
| @ -117,6 +117,8 @@ class GlebbyState: | |||||||
|             self.next_client_id += 1 |             self.next_client_id += 1 | ||||||
|             return client_id |             return client_id | ||||||
| 
 | 
 | ||||||
|  |     # TODO: Instead of using clients_lock, synchronize clients throught incoming_messages | ||||||
|  |     # Make add_client and remove_client simply push events into the queue | ||||||
|     def add_client(self, sock): |     def add_client(self, sock): | ||||||
|         client_id = self._get_next_client_id() |         client_id = self._get_next_client_id() | ||||||
|         self.broadcast(client_id, {'type': 'join'}) |         self.broadcast(client_id, {'type': 'join'}) | ||||||
| @ -150,9 +152,14 @@ class GlebbyState: | |||||||
| state = GlebbyState() | state = GlebbyState() | ||||||
| state.start_event_thread() | state.start_event_thread() | ||||||
| 
 | 
 | ||||||
| app = Flask(__name__) | # TODO: Examine Quart (basically an asyncio version of flask) | ||||||
|  | app = Flask(__name__, static_url_path='') | ||||||
| sock = Sock(app) | sock = Sock(app) | ||||||
| 
 | 
 | ||||||
|  | @app.route('/') | ||||||
|  | def index(): | ||||||
|  |     return app.send_static_file('index.html') | ||||||
|  | 
 | ||||||
| @sock.route('/glebby') | @sock.route('/glebby') | ||||||
| def echo(sock): | def echo(sock): | ||||||
|     client_id = state.add_client(sock) |     client_id = state.add_client(sock) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user