Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
var _ = require('@sailshq/lodash');
var SocketIOClient = require('socket.io-client');
delete require.cache[require.resolve('socket.io-client')];
var SailsIOClient = require('sails.io.js');
var Sails = require('../../../lib/app');
// Build a Sails socket client instance.
//
// (Of course, this runs as soon as this file is first required.
// But it's OK because we don't actually connect except in the
// functions below.)
var io = SailsIOClient(SocketIOClient);
io.sails.environment = 'production';
io.sails.autoConnect = false;
// Make existsSync not crash on older versions of Node
fs.existsSync = fs.existsSync || path.existsSync;
// ^ probably not necessary anymore, this is only relevant for pre-Node-0.8
// (or maybe it was Node 0.8, can't remember). Anyways, it was back when
// `existsSync()` lived in the `path` lib.import Vue from 'vue';
import socketio from "socket.io-client";
import VueSocketio from 'vue-socket.io';
import sailsio from 'sails.io.js';
const io = sailsio(socketio);
// try to reconnect if connection is lost
io.sails.reconnection = true;
io.sails.url = 'http://localhost:1337'; // or process.env.BASE_URL
// Remember this must match te same array in config/sockets.js (server config)
io.sails.transports = ['websocket'];
Vue.use(new VueSocketio({
debug: process.env.NODE_ENV === 'development',
connection: io.socket
}));import socketIOClient from 'socket.io-client';
import sailsIOClient from 'sails.io.js';
import Config from '../constants/Config';
const io = sailsIOClient(socketIOClient);
io.sails.url = Config.SERVER_BASE_URL;
io.sails.autoConnect = false;
io.sails.reconnection = true;
io.sails.useCORSRouteToGetCookie = false;
io.sails.environment = process.env.NODE_ENV;
const { socket } = io;
socket.connect = socket._connect; // eslint-disable-line no-underscore-dangle
['GET', 'POST', 'PUT', 'PATCH', 'DELETE'].forEach((method) => {
socket[method.toLowerCase()] = (url, data, headers) => new Promise((resolve, reject) => {
socket.request(
{
method,initialize: function(dispatchers, actions) {
// sails.io.js modifies the `io` instance passed in which prevents you from
// creating multiple clients using the same `io` import (will throw an
// error if you try).
// Currently this also means you can only talk to a SINGLE WebSockets server
if (!sailsIoClient) {
sailsIoClient = SailsIOClient(io);
sailsIoClient.sails.url = this.serverUrl;
}
this.io = sailsIoClient;
},module.exports = function getSocketAndConnect(opts, cb){
opts = opts || {};
if (!opts.baseUrl) {
return cb(new Error('opts.baseUrl is required!'));
}
opts.timeout = opts.timeout || 5000;
// Instantiate the socket client (`io`)
// (for now, you must explicitly pass in the socket.io client when using this library from Node.js)
var io = sailsIOClient(socketIOClient);
// Set some options:
io.sails.autoConnect = false; // <= prevent a socket from being automatically connected
io.sails.environment = 'production'; // <= disable log output
var socket = io.sails.connect(opts.baseUrl, {
multiplex: false, //<= prevent weird entanglement if this happens to get required more than once
transports: ['websocket'] //<= only use WebSockets (no need for long-polling, etc-- this isn't a browser.)
});
var isDoneAlready;
var alarm = setTimeout(function (){
if (isDoneAlready){
return;
}export default (ctx, inject) => {
const io = sailsIOClient(socketIOClient)
ctx.$io = io
ctx.$socket = io.socket
inject('socket', io.socket)
}setIoHandler () {
if (!this.io) {
const isProductionEnvironment = (process.env.NODE_ENV === 'production')
let io = sailsIo(socketIoClient)
let url
if (isProductionEnvironment) {
url = `${location.protocol}//${location.hostname}${location.port ? ':' + location.port : ''}`
} else url = 'http://localhost:1337'
io.sails.url = url
io.sails.environment = process.env.NODE_ENV || 'development'
io.sails.useCORSRouteToGetCookie = false
this.$set(this, 'io', io)
}
},export function configure(config, configCallback) {
let io = sailsIO(socketIO);
io.sails.autoConnect = false;
let sails = new SailsSocketClient();
if (configCallback !== undefined && typeof(configCallback) === 'function') {
configCallback(sails, io);
}
sails.setSocket(io.sails.connect());
config.instance(SailsSocketClient, sails);
}export function configure(config, configCallback) {
let io = sailsIO(socketIO);
io.sails.autoConnect = false;
let sails = new SailsSocketClient();
if (configCallback !== undefined && typeof(configCallback) === 'function') {
configCallback(sails, io);
}
sails.setSocket(io.sails.connect());
config.instance(SailsSocketClient, sails);
}export function configure(config, configCallback) {
let io = sailsIO(socketIO);
io.sails.autoConnect = false;
let sails = new SailsSocketClient();
if (configCallback !== undefined && typeof configCallback === 'function') {
configCallback(sails, io);
}
sails.setSocket(io.sails.connect());
config.instance(SailsSocketClient, sails);
}