diff --git a/src/WebSocket.js b/src/WebSocket.js index 2a303cc46..c8f73972a 100644 --- a/src/WebSocket.js +++ b/src/WebSocket.js @@ -1,7 +1,6 @@ 'use strict'; const { browser } = require('./util/Constants'); -const querystring = require('querystring'); try { var erlpack = require('erlpack'); if (!erlpack.pack) erlpack = null; @@ -30,8 +29,9 @@ exports.unpack = data => { exports.create = (gateway, query = {}, ...args) => { const [g, q] = gateway.split('?'); query.encoding = exports.encoding; - if (q) query = Object.assign(querystring.parse(q), query); - const ws = new exports.WebSocket(`${g}?${querystring.stringify(query)}`, ...args); + query = new URLSearchParams(query); + if (q) new URLSearchParams(q).forEach((v, k) => query.set(k, v)); + const ws = new exports.WebSocket(`${g}?${query}`, ...args); if (browser) ws.binaryType = 'arraybuffer'; return ws; };