@colyseus/tools 0.15.0-preview.0 → 0.15.0-preview.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +164 -0
- package/build/index.d.ts +5 -5
- package/build/index.js +19 -12
- package/build/index.js.map +3 -3
- package/build/index.mjs +19 -12
- package/build/index.mjs.map +2 -2
- package/package.json +2 -2
package/README.md
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<a href="https://github.com/colyseus/colyseus">
|
|
3
|
+
<img src="media/header.png?raw=true" />
|
|
4
|
+
</a>
|
|
5
|
+
<br>
|
|
6
|
+
<br>
|
|
7
|
+
<a href="https://npmjs.com/package/colyseus">
|
|
8
|
+
<img src="https://img.shields.io/npm/dm/colyseus.svg?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfjAgETESWYxR33AAAAtElEQVQoz4WQMQrCQBRE38Z0QoTcwF4Qg1h4BO0sxGOk80iCtViksrIQRRBTewWxMI1mbELYjYu+4rPMDPtn12ChMT3gavb4US5Jym0tcBIta3oDHv4Gwmr7nC4QAxBrCdzM2q6XqUnm9m9r59h7Rc0n2pFv24k4ttGMUXW+sGELTJjSr7QDKuqLS6UKFChVWWuFkZw9Z2AAvAirKT+JTlppIRnd6XgaP4goefI2Shj++OnjB3tBmHYK8z9zAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTAyLTAxVDE4OjE3OjM3KzAxOjAwGQQixQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0wMi0wMVQxODoxNzozNyswMTowMGhZmnkAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC">
|
|
9
|
+
</a>
|
|
10
|
+
<a href="http://discuss.colyseus.io" title="Discuss on Forum">
|
|
11
|
+
<img src="https://img.shields.io/badge/discuss-on%20forum-brightgreen.svg?style=for-the-badge&colorB=0069b8&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfjAgETDROxCNUzAAABB0lEQVQoz4WRvyvEARjGP193CnWRH+dHQmGwKZtFGcSmxHAL400GN95ktIpV2dzlLzDJgsGgGNRdDAzoQueS/PgY3HXHyT3T+/Y87/s89UANBKXBdoZo5J6L4K1K5ZxHfnjnlQUf3bKvkgy57a0r9hS3cXfMO1kWJMza++tj3Ac7/LY343x1NA9cNmYMwnSS/SP8JVFuSJmr44iFqvtmpjhmhBCrOOazCesq6H4P3bPBjFoIBydOk2bUA17I080Es+wSZ51B4DIA2zgjSpYcEe44Js01G0XjRcCU+y4ZMrDeLmfc9EnVd5M/o0VMeu6nJZxWJivLmhyw1WHTvrr2b4+2OFqra+ALwouTMDcqmjMAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMDItMDFUMTg6MTM6MTkrMDE6MDAC9f6fAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTAyLTAxVDE4OjEzOjE5KzAxOjAwc6hGIwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=" alt="Discussion forum" />
|
|
12
|
+
</a>
|
|
13
|
+
<a href="https://discord.gg/RY8rRS7">
|
|
14
|
+
<img src="https://img.shields.io/discord/525739117951320081.svg?style=for-the-badge&colorB=7581dc&logo=discord&logoColor=white">
|
|
15
|
+
</a>
|
|
16
|
+
<h3>
|
|
17
|
+
Multiplayer Framework for Node.js. <br /><a href="https://docs.colyseus.io/">View documentation</a>
|
|
18
|
+
</h3>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
Colyseus is an Authoritative Multiplayer Framework for Node.js, with clients
|
|
22
|
+
available for the Web, Unity3d, Defold, Haxe, and Cocos2d-X. ([See official clients](#%EF%B8%8F-official-client-integration))
|
|
23
|
+
|
|
24
|
+
The project focuses on providing synchronizable data structures for realtime and
|
|
25
|
+
turn-based games, matchmaking, and ease of usage both on the server-side and
|
|
26
|
+
client-side.
|
|
27
|
+
|
|
28
|
+
The mission of the framework is to be a standard netcode & matchmaking solution
|
|
29
|
+
for any kind of project you can think of!
|
|
30
|
+
|
|
31
|
+
You're encouraged to take a look on [some games being developed with
|
|
32
|
+
it](https://discuss.colyseus.io/category/5/showcase) and make your own!
|
|
33
|
+
|
|
34
|
+
> ⭐️ Enjoying Colyseus? Show your support by starring the project on GitHub ⭐️
|
|
35
|
+
|
|
36
|
+
## What Colyseus provides to you:
|
|
37
|
+
|
|
38
|
+
- WebSocket-based communication
|
|
39
|
+
- Simple API in the server-side and client-side.
|
|
40
|
+
- Automatic state synchronization between server and client.
|
|
41
|
+
- Matchmaking clients into game sessions
|
|
42
|
+
- Scale vertically or horizontally
|
|
43
|
+
|
|
44
|
+
## What Colyseus won't provide:
|
|
45
|
+
|
|
46
|
+
- Game Engine: Colyseus is agnostic of the engine you're using. Need Physics? Add your own logic / package.
|
|
47
|
+
- Database: It's up to you to configure and select which database you'd like to use.
|
|
48
|
+
|
|
49
|
+
See [roadmap](https://github.com/colyseus/colyseus/wiki/Roadmap) for our future plans.
|
|
50
|
+
|
|
51
|
+
# 🚀 Quickstart
|
|
52
|
+
|
|
53
|
+
Create a bare-bones Colyseus server by using `npm init colyseus-app`.
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
npm init colyseus-app my-colyseus-server
|
|
57
|
+
cd my-colyseus-server
|
|
58
|
+
npm start
|
|
59
|
+
```
|
|
60
|
+
# 🏟 Colyseus Arena: Fast & Scalable Cloud Hosting
|
|
61
|
+
|
|
62
|
+
- Looking for a fully managed solution for your Colyseus game server?
|
|
63
|
+
- Want to focus on game development and not on the hosting and infrastructure?
|
|
64
|
+
- Launching a production title and need a solution for 1,000 to 100,000+ CCUs?
|
|
65
|
+
|
|
66
|
+
If so [Colyseus Arena](https://www.colyseus.io/arena) cloud hosting is the solution you are looking for. Easily upload your existing Colyseus Server code and get started today for Free!
|
|
67
|
+
|
|
68
|
+
# 🕹️ Official Client Integration
|
|
69
|
+
|
|
70
|
+
- [JavaScript/TypeScript](https://github.com/colyseus/colyseus.js)
|
|
71
|
+
- [Unity](https://github.com/colyseus/colyseus-unity3d) ([unity3d.com](https://unity3d.com/))
|
|
72
|
+
- [Defold Engine](https://github.com/colyseus/colyseus-defold) ([defold.com](https://www.defold.com/))
|
|
73
|
+
- [Haxe](https://github.com/colyseus/colyseus-hx) ([haxe.org](https://haxe.org/))
|
|
74
|
+
- [Construct 3](https://github.com/colyseus/colyseus-construct3) ([construct3.net](https://www.construct.net/))
|
|
75
|
+
- [Cocos2d-x](https://github.com/colyseus/colyseus-cocos2d-x) ([cocos2d-x.org](https://cocos2d-x.org/))
|
|
76
|
+
|
|
77
|
+
# 🛠️ Tools
|
|
78
|
+
|
|
79
|
+
- [@colyseus/proxy](https://github.com/colyseus/proxy) - Proxy & Service Discovery for scaling Colyseus
|
|
80
|
+
- [@colyseus/monitor](https://github.com/colyseus/colyseus-monitor) - A Web Monitoring Panel for Colyseus
|
|
81
|
+
- [@colyseus/loadtest](https://github.com/colyseus/colyseus-loadtest) - Utility tool for load testing Colyseus
|
|
82
|
+
|
|
83
|
+
## Tools made by the community ❤️
|
|
84
|
+
|
|
85
|
+
- [godot-colyseus](https://github.com/gsioteam/godot-colyseus): Colyseus SDK for Godot, written in GDScript (by [@gsioteam](https://github.com/gsioteam))
|
|
86
|
+
- [colyseus-ue4](https://github.com/charisma-ai/colyseus-ue4): Colyseus SDK for Unreal Engine 4 (by [@bensalilijames](https://github.com/bensalilijames))
|
|
87
|
+
- [colyseus-hxjs](https://github.com/serjek/colyseus-hxjs): Haxe externs for colyseus server (by [@serjek](https://github.com/serjek))
|
|
88
|
+
- [colyseus-kotlin](https://github.com/doorbash/colyseus-kotlin): Client for Java/Kotlin (by [@doorbash](https://github.com/doorbash))
|
|
89
|
+
- [Stencyl Extension](http://community.stencyl.com/index.php/topic,61150.0.html): [Stencyl](http://stencyl.com) extension to communicate with a Colyseus server (by [MdotEdot](http://www.stencyl.com/users/index/32424))
|
|
90
|
+
- [Colyseus-ObjC](https://github.com/swittk/Colyseus-ObjC): Client for Objective C (by [@swittk](https://github.com/swittk))
|
|
91
|
+
- [Colyseus-for-C2](https://github.com/Keevle/Colyseus-for-C2): Client for Construct 2 (by [@Keevle](https://github.com/Keevle))
|
|
92
|
+
|
|
93
|
+
# Usage examples
|
|
94
|
+
|
|
95
|
+
See the [official examples](https://github.com/colyseus/colyseus-examples) for
|
|
96
|
+
usage reference with the latest version of Colyseus.
|
|
97
|
+
|
|
98
|
+
- [Tech Demo: Shooting Gallery](https://github.com/colyseus/unity-demo-shooting-gallery) - Unity + Colyseus "Shooting Gallery" Tech Demo
|
|
99
|
+
- [Colyseus + PixiJS Boilerplate](https://colyseus-pixijs-boilerplate.herokuapp.com/) ([source-code](https://github.com/endel/colyseus-pixijs-boilerplate)) - Simplistic agar.io implementation using [PixiJS](https://github.com/pixijs/pixi.js)
|
|
100
|
+
- [Colyseus + BabylonJS Boilerplate](https://babylonjs-multiplayer.herokuapp.com/) ([source-code](https://github.com/endel/babylonjs-multiplayer-boilerplate)) - Bare-bones [BabylonJS](https://github.com/BabylonJS/Babylon.js) example
|
|
101
|
+
- [Tic Tac Toe](https://tictactoe-colyseus.herokuapp.com) ([source-code](https://github.com/endel/tic-tac-toe)) - Tic Tac Toe using [PixiJS](https://github.com/pixijs/pixi.js) and [Defold Engine](https://defold.com)
|
|
102
|
+
- [Collaborative Drawing Prototype](https://colyseus-drawing-prototype.herokuapp.com/) ([source-code](https://github.com/endel/colyseus-collaborative-drawing)) - Collaborative drawing using HTML5 canvas.
|
|
103
|
+
- (outdated: < v0.8.x): [tanx](https://playcanvas.com/project/367035/overview/tanxcolyseus), [react-example](https://github.com/endel/colyseus-react-example), [LD35 entry: dotower](http://ludumdare.com/compo/ludum-dare-35/?action=preview&uid=50958)
|
|
104
|
+
|
|
105
|
+
# Contributors
|
|
106
|
+
|
|
107
|
+
Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
|
|
108
|
+
|
|
109
|
+
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
110
|
+
<!-- prettier-ignore-start -->
|
|
111
|
+
<!-- markdownlint-disable -->
|
|
112
|
+
<table>
|
|
113
|
+
<tr>
|
|
114
|
+
<td align="center"><a href="https://github.com/halftheopposite/"><img src="https://avatars0.githubusercontent.com/u/5473864?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aymeric Chauvin</b></sub></a><br /><a href="#question-halftheopposite" title="Answering Questions">💬</a> <a href="#example-halftheopposite" title="Examples">💡</a></td>
|
|
115
|
+
<td align="center"><a href="https://github.com/brian-hay"><img src="https://avatars2.githubusercontent.com/u/1428000?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brian Hay</b></sub></a><br /><a href="#content-brian-hay" title="Content">🖋</a></td>
|
|
116
|
+
<td align="center"><a href="https://github.com/damian-pastorini"><img src="https://avatars2.githubusercontent.com/u/1211779?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Damian A. Pastorini</b></sub></a><br /><a href="#question-damian-pastorini" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/commits?author=damian-pastorini" title="Documentation">📖</a> <a href="https://github.com/colyseus/colyseus/issues?q=author%3Adamian-pastorini" title="Bug reports">🐛</a></td>
|
|
117
|
+
<td align="center"><a href="https://github.com/Zielak"><img src="https://avatars0.githubusercontent.com/u/625693?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Darek Greenly</b></sub></a><br /><a href="#question-Zielak" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/issues?q=author%3AZielak" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=Zielak" title="Code">💻</a></td>
|
|
118
|
+
<td align="center"><a href="https://github.com/Vidski"><img src="https://avatars.githubusercontent.com/u/36316706?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David Rydwanski</b></sub></a><br /><a href="#question-Vidski" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/commits?author=Vidski" title="Code">💻</a></td>
|
|
119
|
+
<td align="center"><a href="https://github.com/drburton"><img src="https://avatars0.githubusercontent.com/u/625595?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dr. Burton</b></sub></a><br /><a href="#mentoring-drburton" title="Mentoring">🧑🏫</a></td>
|
|
120
|
+
<td align="center"><a href="https://twitter.com/endel"><img src="https://avatars3.githubusercontent.com/u/130494?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Endel Dreyer</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/commits?author=endel" title="Code">💻</a> <a href="https://github.com/colyseus/colyseus/commits?author=endel" title="Documentation">📖</a> <a href="#example-endel" title="Examples">💡</a></td>
|
|
121
|
+
</tr>
|
|
122
|
+
<tr>
|
|
123
|
+
<td align="center"><a href="https://github.com/enriqueto"><img src="https://avatars2.githubusercontent.com/u/5557196?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Enriqueto</b></sub></a><br /><a href="#business-enriqueto" title="Business development">💼</a></td>
|
|
124
|
+
<td align="center"><a href="https://github.com/fazriz"><img src="https://avatars0.githubusercontent.com/u/2628698?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Fazri Zubair</b></sub></a><br /><a href="#question-fazriz" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/commits?author=fazriz" title="Code">💻</a> <a href="#ideas-fazriz" title="Ideas, Planning, & Feedback">🤔</a> <a href="#business-fazriz" title="Business development">💼</a></td>
|
|
125
|
+
<td align="center"><a href="https://twitter.com/Federkun"><img src="https://avatars2.githubusercontent.com/u/21344385?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Federico</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/issues?q=author%3AFederkun" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=Federkun" title="Code">💻</a></td>
|
|
126
|
+
<td align="center"><a href="https://github.com/mobyjames/"><img src="https://avatars0.githubusercontent.com/u/1327007?v=4?s=100" width="100px;" alt=""/><br /><sub><b>James Jacoby</b></sub></a><br /><a href="#question-mobyjames" title="Answering Questions">💬</a> <a href="#example-mobyjames" title="Examples">💡</a> <a href="#content-mobyjames" title="Content">🖋</a></td>
|
|
127
|
+
<td align="center"><a href="http://wenish.github.io/portfolio/"><img src="https://avatars0.githubusercontent.com/u/18367963?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonas Voland</b></sub></a><br /><a href="#question-Wenish" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/issues?q=author%3AWenish" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=Wenish" title="Code">💻</a> <a href="#ideas-Wenish" title="Ideas, Planning, & Feedback">🤔</a> <a href="#example-Wenish" title="Examples">💡</a></td>
|
|
128
|
+
<td align="center"><a href="http://seiyria.com"><img src="https://avatars0.githubusercontent.com/u/763609?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kyle J. Kemp</b></sub></a><br /><a href="#question-seiyria" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/issues?q=author%3Aseiyria" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=seiyria" title="Code">💻</a> <a href="#ideas-seiyria" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
129
|
+
<td align="center"><a href="https://github.com/LukeWood/"><img src="https://avatars0.githubusercontent.com/u/12191303?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Luke Wood</b></sub></a><br /><a href="#question-LukeWood" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/issues?q=author%3ALukeWood" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=LukeWood" title="Code">💻</a></td>
|
|
130
|
+
</tr>
|
|
131
|
+
<tr>
|
|
132
|
+
<td align="center"><a href="https://github.com/doorbash"><img src="https://avatars2.githubusercontent.com/u/5982526?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Milad Doorbash</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/issues?q=author%3Adoorbash" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=doorbash" title="Code">💻</a></td>
|
|
133
|
+
<td align="center"><a href="https://github.com/TinyDobbins"><img src="https://avatars2.githubusercontent.com/u/20824844?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nikita Borisov</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/issues?q=author%3ATinyDobbins" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=TinyDobbins" title="Code">💻</a> <a href="#business-TinyDobbins" title="Business development">💼</a> <a href="#ideas-TinyDobbins" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
134
|
+
<td align="center"><a href="https://acemobe.com/"><img src="https://avatars2.githubusercontent.com/u/232101?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Phil Harvey</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/commits?author=filharvey" title="Documentation">📖</a></td>
|
|
135
|
+
<td align="center"><a href="https://github.com/serjek"><img src="https://avatars2.githubusercontent.com/u/18265157?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sergey</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/issues?q=author%3Aserjek" title="Bug reports">🐛</a> <a href="https://github.com/colyseus/colyseus/commits?author=serjek" title="Code">💻</a></td>
|
|
136
|
+
<td align="center"><a href="https://oyed.io"><img src="https://avatars0.githubusercontent.com/u/853683?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tom</b></sub></a><br /><a href="#question-oyed" title="Answering Questions">💬</a> <a href="https://github.com/colyseus/colyseus/issues?q=author%3Aoyed" title="Bug reports">🐛</a> <a href="#ideas-oyed" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
137
|
+
<td align="center"><a href="https://github.com/supertommy"><img src="https://avatars0.githubusercontent.com/u/2236153?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tommy Leung</b></sub></a><br /><a href="#mentoring-supertommy" title="Mentoring">🧑🏫</a></td>
|
|
138
|
+
<td align="center"><a href="https://github.com/digimbyte"><img src="https://avatars2.githubusercontent.com/u/6645396?v=4?s=100" width="100px;" alt=""/><br /><sub><b>digimbyte</b></sub></a><br /><a href="https://github.com/colyseus/colyseus/commits?author=digimbyte" title="Documentation">📖</a></td>
|
|
139
|
+
</tr>
|
|
140
|
+
</table>
|
|
141
|
+
|
|
142
|
+
<!-- markdownlint-restore -->
|
|
143
|
+
<!-- prettier-ignore-end -->
|
|
144
|
+
|
|
145
|
+
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
146
|
+
|
|
147
|
+
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification.
|
|
148
|
+
Contributions of any kind are welcome!
|
|
149
|
+
|
|
150
|
+
# Contributing
|
|
151
|
+
|
|
152
|
+
We encourage you to contribute to Colyseus! Please check out the [Contributing
|
|
153
|
+
guide](.github/CONTRIBUTING.md) for guidelines about how to proceed. Join us!
|
|
154
|
+
|
|
155
|
+
Everyone interacting in Colyseus and its sub-projects' codebases, issue trackers
|
|
156
|
+
and chat rooms is expected to follow the [code of conduct](CODE_OF_CONDUCT.md).
|
|
157
|
+
|
|
158
|
+
# Backers / Supporters via Patreon
|
|
159
|
+
|
|
160
|
+
As of February 2021, Colyseus is owned and sponsored by [Lucid Sight](https://www.lucidsight.com/). A warm **thank you** for previous supporters of the project is forever documented in the [early supporters wiki page](https://github.com/colyseus/colyseus/wiki/Early-supporters-(2017-2021)).
|
|
161
|
+
|
|
162
|
+
# License
|
|
163
|
+
|
|
164
|
+
MIT
|
package/build/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import express from "express";
|
|
2
2
|
import { Server, ServerOptions, Transport } from '@colyseus/core';
|
|
3
|
-
export interface
|
|
3
|
+
export interface ConfigOptions {
|
|
4
4
|
options?: ServerOptions;
|
|
5
5
|
displayLogs?: boolean;
|
|
6
6
|
getId?: () => string;
|
|
@@ -9,11 +9,11 @@ export interface ArenaOptions {
|
|
|
9
9
|
initializeGameServer?: (app: Server) => void;
|
|
10
10
|
beforeListen?: () => void;
|
|
11
11
|
}
|
|
12
|
-
export default function (options:
|
|
12
|
+
export default function (options: ConfigOptions): ConfigOptions;
|
|
13
13
|
/**
|
|
14
14
|
* Listen on your development environment
|
|
15
|
-
* @param options
|
|
15
|
+
* @param options Application options
|
|
16
16
|
* @param port Port number to bind Colyseus + Express
|
|
17
17
|
*/
|
|
18
|
-
export declare function listen(options:
|
|
19
|
-
export declare function getTransport(options:
|
|
18
|
+
export declare function listen(options: ConfigOptions, port?: number): Promise<Server>;
|
|
19
|
+
export declare function getTransport(options: ConfigOptions): Promise<Transport>;
|
package/build/index.js
CHANGED
|
@@ -29,6 +29,7 @@ __export(src_exports, {
|
|
|
29
29
|
});
|
|
30
30
|
module.exports = __toCommonJS(src_exports);
|
|
31
31
|
var import_fs = __toESM(require("fs"));
|
|
32
|
+
var import_os = __toESM(require("os"));
|
|
32
33
|
var import_http = __toESM(require("http"));
|
|
33
34
|
var import_path = __toESM(require("path"));
|
|
34
35
|
var import_cors = __toESM(require("cors"));
|
|
@@ -40,18 +41,16 @@ try {
|
|
|
40
41
|
uWebSocketsExpressCompatibility = require("uwebsockets-express").default;
|
|
41
42
|
} catch (e) {
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
import_core.logger.info(`\u26A0\uFE0F ${envFilename} not found.`);
|
|
54
|
-
}
|
|
44
|
+
const envFilename = `${process.env.NODE_ENV || "development"}.env`;
|
|
45
|
+
const envPath = [
|
|
46
|
+
import_path.default.resolve(import_path.default.dirname(require?.main?.filename || process.cwd()), "..", envFilename),
|
|
47
|
+
import_path.default.resolve(process.cwd(), envFilename)
|
|
48
|
+
].find((envPath2) => import_fs.default.existsSync(envPath2));
|
|
49
|
+
if (envPath) {
|
|
50
|
+
import_dotenv.default.config({ path: envPath });
|
|
51
|
+
import_core.logger.info(`\u2705 ${envFilename} loaded.`);
|
|
52
|
+
} else {
|
|
53
|
+
import_core.logger.info(`\u26A0\uFE0F ${envFilename} not found.`);
|
|
55
54
|
}
|
|
56
55
|
const ALLOWED_KEYS = {
|
|
57
56
|
"displayLogs": "boolean",
|
|
@@ -76,6 +75,14 @@ function src_default(options) {
|
|
|
76
75
|
async function listen(options, port = Number(process.env.PORT || 2567)) {
|
|
77
76
|
const serverOptions = options.options || {};
|
|
78
77
|
options.displayLogs = options.displayLogs ?? true;
|
|
78
|
+
const processNumber = Number(process.env.NODE_APP_INSTANCE || "0");
|
|
79
|
+
port += processNumber;
|
|
80
|
+
if (process.env.COLYSEUS_CLOUD !== void 0) {
|
|
81
|
+
serverOptions.publicAddress = process.env.SUBDOMAIN + "." + process.env.SERVER_NAME;
|
|
82
|
+
if (import_os.default.cpus().length > 1) {
|
|
83
|
+
serverOptions.publicAddress += "/" + processNumber + "/";
|
|
84
|
+
}
|
|
85
|
+
}
|
|
79
86
|
const transport = await getTransport(options);
|
|
80
87
|
const gameServer = new import_core.Server({
|
|
81
88
|
...serverOptions,
|
package/build/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["import fs from \"fs\";\nimport http from \"http\";\nimport path from \"path\";\nimport cors from \"cors\";\nimport express from \"express\";\nimport dotenv from \"dotenv\";\nimport { logger, Server, ServerOptions, Transport } from '@colyseus/core';\n\n// try to import uWebSockets-express compatibility layer.\nlet uWebSocketsExpressCompatibility: any;\ntry {\n uWebSocketsExpressCompatibility = require('uwebsockets-express').default;\n} catch (e) {}\n\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,kBAAiB;AACjB,kBAAiB;AACjB,kBAAiB;AACjB,qBAAoB;AACpB,oBAAmB;AACnB,kBAAyD;AAGzD,IAAI;AACJ,IAAI;AACF,oCAAkC,QAAQ,qBAAqB,EAAE;AACnE,SAAS,GAAP;AAAW;
|
|
6
|
-
"names": ["path", "envPath", "fs", "dotenv", "express", "http", "cors"]
|
|
4
|
+
"sourcesContent": ["import fs from \"fs\";\nimport os from \"os\";\nimport http from \"http\";\nimport path from \"path\";\nimport cors from \"cors\";\nimport express from \"express\";\nimport dotenv from \"dotenv\";\nimport { logger, Server, ServerOptions, Transport } from '@colyseus/core';\n\n// try to import uWebSockets-express compatibility layer.\nlet uWebSocketsExpressCompatibility: any;\ntry {\n uWebSocketsExpressCompatibility = require('uwebsockets-express').default;\n} catch (e) {}\n\nconst envFilename = `${process.env.NODE_ENV || \"development\"}.env`;\n\n// return the first .env path found\nconst envPath = [\n path.resolve(path.dirname(require?.main?.filename || process.cwd()), \"..\", envFilename),\n path.resolve(process.cwd(), envFilename)\n].find((envPath) => fs.existsSync(envPath));\n\nif (envPath) {\n dotenv.config({ path: envPath });\n logger.info(`\u2705 ${envFilename} loaded.`);\n} else {\n logger.info(`\u26A0\uFE0F ${envFilename} not found.`);\n}\n\nexport interface ConfigOptions {\n options?: ServerOptions,\n displayLogs?: boolean,\n getId?: () => string,\n initializeTransport?: (options: any) => Transport,\n initializeExpress?: (app: express.Express) => void,\n initializeGameServer?: (app: Server) => void,\n beforeListen?: () => void,\n}\n\nconst ALLOWED_KEYS: { [key in keyof ConfigOptions]: string } = {\n 'displayLogs': \"boolean\",\n 'options': \"object\",\n 'getId': \"function\",\n 'initializeTransport': \"function\",\n 'initializeExpress': \"function\",\n 'initializeGameServer': \"function\",\n 'beforeListen': \"function\"\n};\n\nexport default function (options: ConfigOptions) {\n for (const option in options) {\n if (!ALLOWED_KEYS[option]) {\n throw new Error(`\u274C Invalid option '${option}'. Allowed options are: ${Object.keys(ALLOWED_KEYS).join(\", \")}`);\n }\n if(typeof(options[option]) !== ALLOWED_KEYS[option]) {\n throw new Error(`\u274C Invalid type for ${option}: please provide a ${ALLOWED_KEYS[option]} value.`);\n }\n }\n\n return options;\n}\n\n/**\n * Listen on your development environment\n * @param options Application options\n * @param port Port number to bind Colyseus + Express\n */\nexport async function listen(\n options: ConfigOptions,\n port: number = Number(process.env.PORT || 2567),\n) {\n const serverOptions = options.options || {};\n options.displayLogs = options.displayLogs ?? true;\n\n //\n // Handling multiple processes\n // Use NODE_APP_INSTANCE to play nicely with pm2\n //\n const processNumber = Number(process.env.NODE_APP_INSTANCE || \"0\");\n port += processNumber;\n\n // force \"publicAddress\" when deployed on \"Colyseus Cloud\".\n if (process.env.COLYSEUS_CLOUD !== undefined) {\n serverOptions.publicAddress = process.env.SUBDOMAIN + \".\" + process.env.SERVER_NAME;\n\n // when using multiple processes\n if (os.cpus().length > 1) {\n serverOptions.publicAddress += \"/\" + processNumber + \"/\";\n }\n }\n\n const transport = await getTransport(options);\n const gameServer = new Server({\n ...serverOptions,\n transport,\n });\n await options.initializeGameServer?.(gameServer);\n await options.beforeListen?.();\n\n // listening on port\n gameServer.listen(port);\n\n if (options.displayLogs) {\n const appId = options.getId?.() || \"[ Colyseus ]\";\n if (appId) {\n logger.info(`\uD83C\uDFDF ${appId}`);\n }\n\n logger.info(`\u2694\uFE0F Listening on ws://localhost:${port}`);\n }\n return gameServer;\n}\n\n\nexport async function getTransport(options: ConfigOptions) {\n let transport: Transport;\n\n if (!options.initializeTransport) {\n options.initializeTransport = Server.prototype['getDefaultTransport'];\n }\n\n let app: express.Express | undefined = express();\n let server = http.createServer(app);\n\n transport = await options.initializeTransport({ server });\n\n if (options.initializeExpress) {\n // uWebSockets.js + Express compatibility layer.\n // @ts-ignore\n if (transport['app']) {\n if (typeof (uWebSocketsExpressCompatibility) === \"function\") {\n if (options.displayLogs){\n logger.info(\"\u2705 uWebSockets.js + Express compatibility enabled\");\n }\n\n // @ts-ignore\n server = undefined;\n // @ts-ignore\n app = uWebSocketsExpressCompatibility(transport['app']);\n\n } else {\n if (options.displayLogs) {\n logger.warn(\"\");\n logger.warn(\"\u274C uWebSockets.js + Express compatibility mode couldn't be loaded, run the following command to fix:\");\n logger.warn(\"\uD83D\uDC49 npm install --save uwebsockets-express\");\n logger.warn(\"\");\n }\n app = undefined;\n }\n }\n\n if (app) {\n // Enable CORS + JSON parsing.\n app.use(cors());\n app.use(express.json());\n\n await options.initializeExpress(app);\n\n if (options.displayLogs) {\n logger.info(\"\u2705 Express initialized\");\n }\n }\n }\n\n return transport;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["path", "envPath", "fs", "dotenv", "os", "express", "http", "cors"]
|
|
7
7
|
}
|
package/build/index.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
|
+
import os from "os";
|
|
2
3
|
import http from "http";
|
|
3
4
|
import path from "path";
|
|
4
5
|
import cors from "cors";
|
|
@@ -10,18 +11,16 @@ try {
|
|
|
10
11
|
uWebSocketsExpressCompatibility = require("uwebsockets-express").default;
|
|
11
12
|
} catch (e) {
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
logger.info(`\u26A0\uFE0F ${envFilename} not found.`);
|
|
24
|
-
}
|
|
14
|
+
const envFilename = `${process.env.NODE_ENV || "development"}.env`;
|
|
15
|
+
const envPath = [
|
|
16
|
+
path.resolve(path.dirname(require?.main?.filename || process.cwd()), "..", envFilename),
|
|
17
|
+
path.resolve(process.cwd(), envFilename)
|
|
18
|
+
].find((envPath2) => fs.existsSync(envPath2));
|
|
19
|
+
if (envPath) {
|
|
20
|
+
dotenv.config({ path: envPath });
|
|
21
|
+
logger.info(`\u2705 ${envFilename} loaded.`);
|
|
22
|
+
} else {
|
|
23
|
+
logger.info(`\u26A0\uFE0F ${envFilename} not found.`);
|
|
25
24
|
}
|
|
26
25
|
const ALLOWED_KEYS = {
|
|
27
26
|
"displayLogs": "boolean",
|
|
@@ -46,6 +45,14 @@ function src_default(options) {
|
|
|
46
45
|
async function listen(options, port = Number(process.env.PORT || 2567)) {
|
|
47
46
|
const serverOptions = options.options || {};
|
|
48
47
|
options.displayLogs = options.displayLogs ?? true;
|
|
48
|
+
const processNumber = Number(process.env.NODE_APP_INSTANCE || "0");
|
|
49
|
+
port += processNumber;
|
|
50
|
+
if (process.env.COLYSEUS_CLOUD !== void 0) {
|
|
51
|
+
serverOptions.publicAddress = process.env.SUBDOMAIN + "." + process.env.SERVER_NAME;
|
|
52
|
+
if (os.cpus().length > 1) {
|
|
53
|
+
serverOptions.publicAddress += "/" + processNumber + "/";
|
|
54
|
+
}
|
|
55
|
+
}
|
|
49
56
|
const transport = await getTransport(options);
|
|
50
57
|
const gameServer = new Server({
|
|
51
58
|
...serverOptions,
|
package/build/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["import fs from \"fs\";\nimport http from \"http\";\nimport path from \"path\";\nimport cors from \"cors\";\nimport express from \"express\";\nimport dotenv from \"dotenv\";\nimport { logger, Server, ServerOptions, Transport } from '@colyseus/core';\n\n// try to import uWebSockets-express compatibility layer.\nlet uWebSocketsExpressCompatibility: any;\ntry {\n uWebSocketsExpressCompatibility = require('uwebsockets-express').default;\n} catch (e) {}\n\
|
|
5
|
-
"mappings": "AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,UAAU;AACjB,OAAO,UAAU;AACjB,OAAO,aAAa;AACpB,OAAO,YAAY;AACnB,SAAS,QAAQ,cAAwC;AAGzD,IAAI;AACJ,IAAI;AACF,oCAAkC,QAAQ,qBAAqB,EAAE;AACnE,SAAS,GAAP;AAAW;
|
|
4
|
+
"sourcesContent": ["import fs from \"fs\";\nimport os from \"os\";\nimport http from \"http\";\nimport path from \"path\";\nimport cors from \"cors\";\nimport express from \"express\";\nimport dotenv from \"dotenv\";\nimport { logger, Server, ServerOptions, Transport } from '@colyseus/core';\n\n// try to import uWebSockets-express compatibility layer.\nlet uWebSocketsExpressCompatibility: any;\ntry {\n uWebSocketsExpressCompatibility = require('uwebsockets-express').default;\n} catch (e) {}\n\nconst envFilename = `${process.env.NODE_ENV || \"development\"}.env`;\n\n// return the first .env path found\nconst envPath = [\n path.resolve(path.dirname(require?.main?.filename || process.cwd()), \"..\", envFilename),\n path.resolve(process.cwd(), envFilename)\n].find((envPath) => fs.existsSync(envPath));\n\nif (envPath) {\n dotenv.config({ path: envPath });\n logger.info(`\u2705 ${envFilename} loaded.`);\n} else {\n logger.info(`\u26A0\uFE0F ${envFilename} not found.`);\n}\n\nexport interface ConfigOptions {\n options?: ServerOptions,\n displayLogs?: boolean,\n getId?: () => string,\n initializeTransport?: (options: any) => Transport,\n initializeExpress?: (app: express.Express) => void,\n initializeGameServer?: (app: Server) => void,\n beforeListen?: () => void,\n}\n\nconst ALLOWED_KEYS: { [key in keyof ConfigOptions]: string } = {\n 'displayLogs': \"boolean\",\n 'options': \"object\",\n 'getId': \"function\",\n 'initializeTransport': \"function\",\n 'initializeExpress': \"function\",\n 'initializeGameServer': \"function\",\n 'beforeListen': \"function\"\n};\n\nexport default function (options: ConfigOptions) {\n for (const option in options) {\n if (!ALLOWED_KEYS[option]) {\n throw new Error(`\u274C Invalid option '${option}'. Allowed options are: ${Object.keys(ALLOWED_KEYS).join(\", \")}`);\n }\n if(typeof(options[option]) !== ALLOWED_KEYS[option]) {\n throw new Error(`\u274C Invalid type for ${option}: please provide a ${ALLOWED_KEYS[option]} value.`);\n }\n }\n\n return options;\n}\n\n/**\n * Listen on your development environment\n * @param options Application options\n * @param port Port number to bind Colyseus + Express\n */\nexport async function listen(\n options: ConfigOptions,\n port: number = Number(process.env.PORT || 2567),\n) {\n const serverOptions = options.options || {};\n options.displayLogs = options.displayLogs ?? true;\n\n //\n // Handling multiple processes\n // Use NODE_APP_INSTANCE to play nicely with pm2\n //\n const processNumber = Number(process.env.NODE_APP_INSTANCE || \"0\");\n port += processNumber;\n\n // force \"publicAddress\" when deployed on \"Colyseus Cloud\".\n if (process.env.COLYSEUS_CLOUD !== undefined) {\n serverOptions.publicAddress = process.env.SUBDOMAIN + \".\" + process.env.SERVER_NAME;\n\n // when using multiple processes\n if (os.cpus().length > 1) {\n serverOptions.publicAddress += \"/\" + processNumber + \"/\";\n }\n }\n\n const transport = await getTransport(options);\n const gameServer = new Server({\n ...serverOptions,\n transport,\n });\n await options.initializeGameServer?.(gameServer);\n await options.beforeListen?.();\n\n // listening on port\n gameServer.listen(port);\n\n if (options.displayLogs) {\n const appId = options.getId?.() || \"[ Colyseus ]\";\n if (appId) {\n logger.info(`\uD83C\uDFDF ${appId}`);\n }\n\n logger.info(`\u2694\uFE0F Listening on ws://localhost:${port}`);\n }\n return gameServer;\n}\n\n\nexport async function getTransport(options: ConfigOptions) {\n let transport: Transport;\n\n if (!options.initializeTransport) {\n options.initializeTransport = Server.prototype['getDefaultTransport'];\n }\n\n let app: express.Express | undefined = express();\n let server = http.createServer(app);\n\n transport = await options.initializeTransport({ server });\n\n if (options.initializeExpress) {\n // uWebSockets.js + Express compatibility layer.\n // @ts-ignore\n if (transport['app']) {\n if (typeof (uWebSocketsExpressCompatibility) === \"function\") {\n if (options.displayLogs){\n logger.info(\"\u2705 uWebSockets.js + Express compatibility enabled\");\n }\n\n // @ts-ignore\n server = undefined;\n // @ts-ignore\n app = uWebSocketsExpressCompatibility(transport['app']);\n\n } else {\n if (options.displayLogs) {\n logger.warn(\"\");\n logger.warn(\"\u274C uWebSockets.js + Express compatibility mode couldn't be loaded, run the following command to fix:\");\n logger.warn(\"\uD83D\uDC49 npm install --save uwebsockets-express\");\n logger.warn(\"\");\n }\n app = undefined;\n }\n }\n\n if (app) {\n // Enable CORS + JSON parsing.\n app.use(cors());\n app.use(express.json());\n\n await options.initializeExpress(app);\n\n if (options.displayLogs) {\n logger.info(\"\u2705 Express initialized\");\n }\n }\n }\n\n return transport;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["envPath"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@colyseus/tools",
|
|
3
|
-
"version": "0.15.0-preview.
|
|
3
|
+
"version": "0.15.0-preview.2",
|
|
4
4
|
"description": "Colyseus Tools for Production",
|
|
5
5
|
"input": "./src/index.ts",
|
|
6
6
|
"main": "./build/index.js",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "21281895a89e9f5091ad4042c173dd165c270b98"
|
|
47
47
|
}
|