0.10.1 • Published 9 years ago

@superhero/websocket v0.10.1

Weekly downloads
1
License
WTFPL
Repository
github
Last release
9 years ago

Websocket

Licence: MIT


npm version

A server/client bundle setup to solve some personal issues I have with other solutions out there.

Install

npm install @superhero/websocket

...or just set the dependency in your package.json file:

{
  "dependencies":
  {
    "@superhero/websocket": "*"
  }
}

Browser › Example

server.js

const Websocket = require('@superhero/websocket')
const options   = { debug:true }
const websocket = new Websocket(options)

// listen on port 80
websocket.server.listen({ port:80 })

websocket.events.on('HelloWorld', (ctx, dto) =>
{
  // dto == { 'I':'am','now':'connected' }
  ctx.emit('sup m8', { 'this':'is','the':'response' })
})

websocket.events.on('¯|_(ツ)_/¯', (ctx, dto) =>
{
  // dto == { 'also':'works' }

  // headers is an object of the request headers sent when connection was
  // established
  console.log(ctx.headers)

  // client ip
  console.log(ctx.socket.remoteAddress)

  // ip family (IPv4 or IPv6)
  console.log(ctx.socket.remoteFamily)

  // numeric representation of the remote port..
  console.log(ctx.socket.remotePort)
})

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Websocket by a Superhero</title>
  </head>

  <body>
    <script data-main="/main" src="//requirejs.org/docs/release/2.2.0/minified/require.js"></script>
  </body>
</html>

main.js

define(
[
  // this "cient" -module is included in this repo. see `client.browser.js` file
  'client'
],
function(client)
{
  var socket = client(
  {
    host  : 'localhost',
    debug : true
  })
  .on('sup m8', function(dto)
  {
    // dto == { 'this':'is','the':'response' }
    socket.emit('¯|_(ツ)_/¯', { 'also':'works' })
  })
  .connected(function(socket2)
  {
    // `socket` === `socket2`
    // socket2 is however returned through a promise that the socket is
    // connected. attaching listeners does not need this promise, emitting
    // messages however needs a connection to send to.

    // example
    socket2.emit('HelloWorld', { 'I':'am','now':'connected' })
  })
})

Server › Example

The module has both a server and a client. So you can use the module for a server to server connection, for what ever reason you now want to do that...

const WebsocketServer = require('@superhero/websocket')
const WebsocketClient = require('@superhero/websocket/client')

const server = new WebsocketServer()
const client = new WebsocketClient()

const evt1 = 'foo'
const evt2 = 'bar'
const dto1 = 'baz'
const dto2 = 'qux'

const port = 9001

server.server.listen({ port })
server.server.on('listening', async () =>
{
  await client.connect(port)
  client.emit(evt1, dto1)
})

server.events.on(evt1, (ctx, dto) =>
{
  // dto === 'baz'
  ctx.emit(evt2, dto2)
})

client.events.on(evt2, (dto) =>
{
  // dto === 'qux'
})
1.1.1

8 years ago

1.1.0

8 years ago

1.0.20

8 years ago

1.0.19

8 years ago

1.0.18

8 years ago

1.0.17

8 years ago

1.0.16

8 years ago

1.0.15

8 years ago

1.0.14

8 years ago

1.0.13

8 years ago

1.0.12

8 years ago

1.0.11

8 years ago

1.0.10

8 years ago

1.0.9

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago

0.13.13

8 years ago

0.13.12

9 years ago

0.13.11

9 years ago

0.13.10

9 years ago

0.13.9

9 years ago

0.13.8

9 years ago

0.13.7

9 years ago

0.13.6

9 years ago

0.13.5

9 years ago

0.13.4

9 years ago

0.13.3

9 years ago

0.13.2

9 years ago

0.13.1

9 years ago

0.13.0

9 years ago

0.12.0

9 years ago

0.11.6

9 years ago

0.11.5

9 years ago

0.11.4

9 years ago

0.11.3

9 years ago

0.11.2

9 years ago

0.10.20

9 years ago

0.10.19

9 years ago

0.10.18

9 years ago

0.10.17

9 years ago

0.10.16

9 years ago

0.10.14

9 years ago

0.10.13

9 years ago

0.10.12

9 years ago

0.10.11

9 years ago

0.10.10

9 years ago

0.10.9

9 years ago

0.10.8

9 years ago

0.10.7

9 years ago

0.10.6

9 years ago

0.10.5

9 years ago

0.10.4

9 years ago

0.10.3

9 years ago

0.10.2

9 years ago

0.10.1

9 years ago

0.10.0

9 years ago

0.9.3

9 years ago

0.9.2

9 years ago

0.9.1

9 years ago

0.8.0

9 years ago

0.7.13

9 years ago

0.7.12

9 years ago

0.7.11

9 years ago

0.7.10

9 years ago

0.7.9

9 years ago

0.7.8

9 years ago

0.7.7

9 years ago

0.7.6

9 years ago

0.7.5

9 years ago

0.7.4

9 years ago

0.7.3

9 years ago

0.7.2

9 years ago

0.7.1

9 years ago

0.7.0

9 years ago

0.6.9

9 years ago

0.6.8

9 years ago

0.6.6

9 years ago

0.6.4

9 years ago

0.6.3

9 years ago

0.6.2

9 years ago

0.6.1

9 years ago

0.6.0

9 years ago

0.5.0

9 years ago

0.4.1

9 years ago

0.4.0

9 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago