0
私はRuby Socket.IO client simpleを使用しています。このJSコードをRubyで再現しようとしています。 JSコードは期待どおりに動作していますが、Rubyのバージョンでは、 'auth' emitでコールバック出力 'Authentication successful'が生成されません。Ruby Socket.IOコールバック
Rubyでの認証は成功しましたが、私は認証後に他のプライベートメソッドを発行できます。コールバックは、あなたがどこでもそれを呼び出すことはありませんので、呼び出されません
JS
var ws = io('https://test.com')
ws.on('connect', function() {
auth(ws, pubKey, secKey, function (err, auth) {
if (err) return console.error('Error', err);
if (auth.success)
console.log('Authentication successful');
else
console.log('Authentication failed');
});
});
function auth(ws, pubKey, secKey, cb) {
var data = { apiKey: pubKey, cmd: 'getAuthInfo', nonce: Date.now() };
var sig = crypto.sign(data, secKey);
ws.emit('auth', data, sig, cb);
}
ルビー
require 'socket.io-client-simple'
require 'date'
ws = SocketIO::Client::Simple.connect 'https://test.com'
socket.on :connect do
auth(ws, pubKey, secKey, method(:auth_callback))
end
def auth(ws, pubKey, secKey, cb)
data = { apiKey: pubKey, cmd: 'getAuthInfo', nonce: DateTime.now }
sig = Crypto.sign(data, secKey)
ws.emit :auth, [data.to_json, sig, cb]
end
def auth_callback(err, auth)
if auth.success
puts 'Authentication successful'
end
end
ありがとう、私はあなたが意味することを参照してくださいが、私は実際には、jsのように、ルビーのメソッドをemitの応答を得ることはできません。 socket.io-client-simpleラッパーの制限のようです –