问题描述
我正试图制作一个机器人/脚本来以Rollbit的价格撤出CSGO Skins,但我目前的解决方案太慢了。
我对WebSockets和非常高效的代码或高效编程语言不太熟悉。我最初的想法是使用自定义的Chrome扩展程序将脚本注入客户端浏览器,因此我不必每次都想手动使用脚本。我找到了WebSocket连接并尝试了以下代码:
const ws = new WebSocket('wss://ws.rollbit.com/');
ws.onmessage = function (e) {
var response = JSON.parse(e.data);
if (response[0] == "steam/market") {
var listing = response[1];
var ref = listing.ref;
var state = listing.state
var price = listing.price;
var markup = listing.markup;
var item = listing.items[0];
var name = item.name;
if (listing.state == "listed" && listing.markup == 0 && listing.price > 50) {
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange",function() {
if(this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("POST","https://api.rollbit.com/steam/withdraw");
xhr.setRequestHeader("authority","api.rollbit.com");
xhr.setRequestHeader("accept","application/json,text/*");
xhr.setRequestHeader("content-type","application/json; charset=UTF-8");
xhr.setRequestHeader("accept-language","en-US,en;q=0.9");
xhr.send("{\"refs\":[\"" + response[1].ref + "\"]}");
}
}
}
如果我输入一个现有列表的引用,此代码将起作用,但是当我想购买一个新列表时,我会从POST请求中收到以下响应:
{"success":false,"error":"Items unavailable"}
因为某人已经比我当前的脚本更快地创建了请求。我知道这段代码不是100%优化的,但是我开始认为有一种更好,更快的方法。我可以使用当前的解决方案来提高性能,还是对如何检测新列表并将POST请求更快地发送到服务器有任何建议?
我的下一个方法是尝试使用Python或可能是无头浏览器,但这对我来说是一个非常陌生的领域,所以这就是我在这里寻求建议的原因。也许你们当中有人做过类似的事情,可能会指出正确的方向。任何帮助深表感谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)