npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

magx-client

v0.7.2

Published

magx-server javascript client

Downloads

7

Readme

Magx JS client

JavaScript/TypeScript Client for MagX multiplayer game server.

Installation

Installing the module

npm install --save magx-client

and include it to your project

import { Client } from "magx-client"

CDN link

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/magx.js"></script>

or you can include magx-client package to server dependencies and use it on client:

<script src="/magx"></script>

Usage

Connecting to server

var client = new MagX.Client({ address: "localhost", port: 3001, secure: true })

// Authenticate
await client.authenticate({ login, password })

// or verify your session
await client.verify(token)

// Get avaliable rooms
const rooms = await client.getRooms("lobby")

// create new room
const room = await client.createRoom(name, params)

// or join to existing room
const room = await client.joinRoom(roomId, params)

// or reconnect to room
const room = await client.reconnect(roomId)

Handle room events

// new room state
room.onSnapshot((state) => {
  console.log("initial room state:", state)
})

// listen to patches coming from the server
room.onPatch((patch) => {
  // this signal is triggered on each patch
  console.log("room state patch:", patch)
})

// listen to messages coming from the server
room.onMessage("move", (data) => {
  // this signal is triggered on each "move" message
  console.log("new move message:", data)
})

// listen to specified state changes
room.onChange("replace", "object/:id/*", (patch, { id }) => updateObject(id, patch))

// short alias for onChange event
room.onAdd("players/:id", (patch, { id }) => addPlayer(id, patch.value)
room.onRemove("players/:id", (patch, { id }) => removePlayer(id))
room.onReplace("players/:id/:prop", (patch, { id, prop }) => updatePlayer(id, prop, patch.value))

// server error occurred
room.onError((code, message) => {
  console.log("error", code, message);
})

// client left the room
room.onLeave(() => {
  console.log(client.id, "left");
})

Use room methods

// send message
room.send(type, data)

// leave room
room.leave()

// close room
room.close() {

// update room params
room.update(update)

Examples

The easiest way to try out magx-client is using the magx-example:

git clone https://github.com/udamir/magx-examples.git
cd magx-examples
npm install

To run the MagX server, run npm start

License

FOSSA Status