Code Monkey home page Code Monkey logo

msgpax_serializer's Introduction

Msgpax Serializer

Hex Version

Use MessagePack via Msgpax to serialize data sent over a Phoenix Socket.

Usage

Phoenix Socket

Add Phoenix.Socket.V2.MsgpaxSerializer as the serializer for the websocket in endpoint.ex.

socket "/triple-cream-brie-socket", CheeseFactoryWeb.TripleCreamBrieSocket,
  websocket: [serializer: [{Phoenix.Socket.V2.MsgpaxSerializer, "~> 2.0.0"}]],
  longpoll: false

The fourth arg to GenSocketClient.start_link is the socket_opts, where you set serialzer: Phoenix.Channels.GenSocketClient.Serializer.Msgpax.

GenSocketClient.start_link(
  __MODULE__,
  Phoenix.Channels.GenSocketClient.Transport.WebSocketClient,
  Keyword.put(opts, :url, "ws://cheese.factory/triple-cream-brie-socket/websocket"),
  [serializer: Phoenix.Channels.GenSocketClient.Serializer.Msgpax],
  name: __MODULE__
)

msgpax_serializer's People

Contributors

simonmcconnell avatar

Watchers

James Cloos avatar  avatar

msgpax_serializer's Issues

add JS usage example

something like this person did

npm install --save @msgpack/msgpack

import {encode, decode} from '@msgpack/msgpack'

// Still that old saying, pay attention to the same order!
const serialize = ({join_ref, ref, topic, event, payload}, callback) => callback(encode([join_ref, ref, topic, event, payload]))

const deserialize = (rawMessage, callback) => {
  // Don't I repeat it?
  const [join_ref, ref, topic, event, payload] = decode(rawMessage)
  return callback({join_ref, ref, topic, event, payload})
}

let socket = new Socket("/socket", {
  ...,
  encode: serialize,  // Overwrite the original ws serialization mode
  decode: deserialize  // Overwrite the original ws deserialization mode
})

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.