我正在尝试从mocha测试sails套接字连接。
var socketIOClient = require('socket.io-client');
var sailsIOClient = require('sails.io.js');
// 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:
// (you have to specify the host and port of the Sails backend when using this library from Node.js)
io.sails.url = 'http://localhost:1337';
它出错
未捕获错误:提供的socket.io客户端(io)已经存在 扩充到Sails套接字SDK实例(它有io.sails)。
我做错了吗? sails版本0.12.3,socket.io-client 1.4.6
答案 0 :(得分:0)
答案 1 :(得分:0)
我曾经遇到过这个问题。它发生在我使用套接字连接到 React 时。
一个快速的解决方法是只调用一次 io 函数,即在 React 中,它通过将 sockets 函数包装在 componentDidMount 函数中来确保它即使刷新也只运行一次。
确保只运行一次
var io = sailsIOClient(socketIOClient);
io.sails.url = 'http://localhost:1337';
这样做
let io;
if (socketIOClient.sails) {
io = socketIOClient;
} else {
io = sailsIOClient(socketIOClient);
}
你可以告别那个讨厌的错误