Socket
Socket
Sign inDemoInstall

@brajkowski/connect4-multiplayer-client

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@brajkowski/connect4-multiplayer-client - npm Package Compare versions

Comparing version 1.0.0-beta.7 to 1.0.0-beta.8

16

dist/client.d.ts
export declare class Connect4Client {
private ws;
private session;
private user;
private sessionName;
private username;
private onOpenCallback?;
private sessionCreatedCallback?;
private joinedSessionCallback?;
private sessionNotFoundCallback?;
private onSessionCreatedCallback?;
private onSessionJoinedCallback?;
private onSessionNotFoundCallback?;
private onOpponentJoinCallback?;

@@ -17,4 +17,4 @@ private onOpponentMoveCallback?;

close(): void;
createSession(user: string): void;
joinSession(session: string, user: string): void;
createSession(username: string): void;
joinSession(sessionName: string, username: string): void;
makeMove(column: number): void;

@@ -24,3 +24,3 @@ quit(): void;

onSessionCreated(callback: (sessionName: string) => any): void;
onJoinedSession(callback: (opponentUsername: string) => any): void;
onSessionJoined(callback: (opponentUsername: string) => any): void;
onSessionNotFound(callback: () => any): void;

@@ -27,0 +27,0 @@ onOpponentJoin(callback: (username: string) => any): void;

@@ -26,6 +26,6 @@ "use strict";

};
Connect4Client.prototype.createSession = function (user) {
this.user = user;
Connect4Client.prototype.createSession = function (username) {
this.username = username;
var packet = {
user: this.user,
user: this.username,
action: connect4_multiplayer_common_1.ClientAction.CREATE_SESSION,

@@ -35,8 +35,8 @@ };

};
Connect4Client.prototype.joinSession = function (session, user) {
this.session = session;
this.user = user;
Connect4Client.prototype.joinSession = function (sessionName, username) {
this.sessionName = sessionName;
this.username = username;
var packet = {
session: this.session,
user: this.user,
session: this.sessionName,
user: this.username,
action: connect4_multiplayer_common_1.ClientAction.JOIN_SESSION,

@@ -48,4 +48,4 @@ };

var packet = {
session: this.session,
user: this.user,
session: this.sessionName,
user: this.username,
action: connect4_multiplayer_common_1.ClientAction.MOVE,

@@ -58,4 +58,4 @@ column: column,

var packet = {
session: this.session,
user: this.user,
session: this.sessionName,
user: this.username,
action: connect4_multiplayer_common_1.ClientAction.QUIT,

@@ -70,9 +70,9 @@ };

Connect4Client.prototype.onSessionCreated = function (callback) {
this.sessionCreatedCallback = callback;
this.onSessionCreatedCallback = callback;
};
Connect4Client.prototype.onJoinedSession = function (callback) {
this.joinedSessionCallback = callback;
Connect4Client.prototype.onSessionJoined = function (callback) {
this.onSessionJoinedCallback = callback;
};
Connect4Client.prototype.onSessionNotFound = function (callback) {
this.sessionNotFoundCallback = callback;
this.onSessionNotFoundCallback = callback;
};

@@ -102,10 +102,11 @@ Connect4Client.prototype.onOpponentJoin = function (callback) {

case connect4_multiplayer_common_1.ServerAction.SESSION_CREATED:
this.session = packet.newSession;
(_a = this.sessionCreatedCallback) === null || _a === void 0 ? void 0 : _a.call(this, this.session);
this.sessionName = packet.newSession;
(_a = this.onSessionCreatedCallback) === null || _a === void 0 ? void 0 : _a.call(this, this.sessionName);
break;
case connect4_multiplayer_common_1.ServerAction.JOINED_SESSION:
(_b = this.joinedSessionCallback) === null || _b === void 0 ? void 0 : _b.call(this, packet.user);
(_b = this.onSessionJoinedCallback) === null || _b === void 0 ? void 0 : _b.call(this, packet.user);
break;
case connect4_multiplayer_common_1.ServerAction.SESSION_NOT_FOUND:
(_c = this.sessionNotFoundCallback) === null || _c === void 0 ? void 0 : _c.call(this);
(_c = this.onSessionNotFoundCallback) === null || _c === void 0 ? void 0 : _c.call(this);
break;
case connect4_multiplayer_common_1.ServerAction.OPPONENT_JOIN:

@@ -112,0 +113,0 @@ (_d = this.onOpponentJoinCallback) === null || _d === void 0 ? void 0 : _d.call(this, packet.user);

@@ -8,4 +8,3 @@ {

"test": "echo \"Error: no test specified\" && exit 1",
"build": "rimraf ./dist && tsc",
"start": "ts-node src/main.ts"
"build": "rimraf ./dist && tsc"
},

@@ -49,5 +48,5 @@ "repository": {

"dependencies": {
"@brajkowski/connect4-multiplayer-common": "^1.0.0-beta.9"
"@brajkowski/connect4-multiplayer-common": "^1.0.0"
},
"version": "1.0.0-beta.7"
"version": "1.0.0-beta.8"
}
# Connect 4 Multiplayer: Client
[![Build](https://github.com/brajkowski/connect4-multiplayer-client/actions/workflows/build.yml/badge.svg)](https://github.com/brajkowski/connect4-multiplayer-client/actions/workflows/build.yml)
[![npm:latest](https://img.shields.io/npm/v/@brajkowski/connect4-multiplayer-client/latest?color=limegreen&logo=npm)](https://www.npmjs.com/package/@brajkowski/connect4-multiplayer-client)
[![npm:beta](https://img.shields.io/npm/v/@brajkowski/connect4-multiplayer-client/beta?logo=npm)](https://www.npmjs.com/package/@brajkowski/connect4-multiplayer-client)

@@ -19,4 +20,61 @@ [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)

TODO.
This client is designed to connect to an instance of the [connect4-multiplayer-server](https://github.com/brajkowski/connect4-multiplayer-server).
To use the client, simply create an instance and open a connection to the server:
```ts
const client: Connect4Client = new Connect4Client();
client.open('wss://my-multiplayer-server-instance.myhost.com');
```
From there you can either create a new multiplayer session or join an existing session:
```ts
client.createSession(username);
// or
client.joinSession(sessionName, username);
```
The [Connect4Client](src/client.ts) object provides methods to perform actions such as placing a chip or leaving the session:
```ts
client.makeMove(0); // Sends action to server to place chip in first column.
client.quit(); // Gracefully leave the multiplayer session and alert the server.
```
Finally there are several methods to write custom callbacks in order to handle actions that are coming from the server:
```ts
onOpen(callback: () => any)
onSessionCreated(callback: (sessionName: string) => any)
onSessionJoined(callback: (opponentUsername: string) => any)
onSessionNotFound(callback: () => any)
onOpponentJoin(callback: (username: string) => any)
onOpponentMove(callback: (column: number) => any)
onOpponentQuit(callback: () => any)
onGameRestart(callback: (thisClientStartsFirst: boolean) => any)
onSessionEnded(callback: () => any)
onClose(callback: () => any)
```
### Example: Tying it all together
```ts
const client: Connect4Client = new Connect4Client();
client.onOpen(() => client.createSession(username));
client.onSessionCreated((sessionName) => shareSessionName(sessionName));
client.onOpponentJoin((username) => {
setOpponentUsername(username);
promptUserForMove(); // The session creator always goes first.
});
client.onOpponentMove((column) => {
trackOpponentChipPlacement(column);
promptUserForMove();
});
client.onGameRestart((thisClientStartsFirst) => {
resetGameState();
if (thisClientStartsFirst) promptUserForMove(); // Server decides who goes first.
});
client.open('wss://my-multiplayer-server-instance.myhost.com');
```
## Building from Source

@@ -23,0 +81,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc