Files
cypress/packages/socket
Zach Bloomquist d185a74dc9 Allow circular structures to be sent over the websocket, make it an error to send circular request bodies (#4407)
* use a parser that supports circular json

* update tests to work with new socketio version

* add error message when users supply circular body to visit/request

* show the path of the circular reference detected

* Revert "use a parser that supports circular json"

This reverts commit c052f44ec8.

* add failing driver and server tests for circular objs over websocket

* use a parser that supports circular json

* add has-binary2 patch that enables circular objects to be inspected

* update socket spec

* rejectUnauthorized: false

* use @packages/socket instead of copying client source

* prevent false positive

* use commit hash for socket.io-circular-parser

* cleanup bundling of socket.io for node + browser

- keep the interfaces identical
- browser simply has less properties than the node variant

* properly import client + circularParser from socket package

* @cypress/what-is-circular

* dont require the extension, it causes gulp to hang

* fix runner tests hanging


Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2019-06-13 17:43:59 -04:00
..

Socket

This is a shared lib for holding both the socket.io server and client.

Installing

The sockets's dependencies can be installed with:

cd packages/socket
npm install

Using

const socket = require("packages/socket")

// returns
{
  server: require("socket.io"),
  client: require("socket.io-client"),
  getPathToClientSource: function () {
    // returns path to the client 'socket.io.js' file
    // for use in the browser
  }
}
const socket = require("packages/socket")

// server usage
const srv = require("http").createServer()
const io = socket.server(srv)
io.on("connection", function(){})

// client usage
const client = socket.client("http://localhost:2020")
client.on("connect", function(){})
client.on("event", function(){})
client.on("disconnect", function(){})

// path usage
socket.getPathToClientSource()
// returns your/path/to/node_modules/socket.io-client/socket.io.js0

Testing

npm test