OKEX V5 WS ইন্টারফেস ব্যক্তিগত ইন্টারফেস ব্যবহারের উদাহরণ, নীতিগত পরামিতিaccessKey
、secretKey
、passphrase
◄ এর মধ্যেpassphrase
এটি একটি গোপন কী পাসওয়ার্ড যা এক্সচেঞ্জের ওয়েবসাইটে APIKEY তৈরি করার সময় পূরণ করা হয়। নীতি উদাহরণ প্রথমে লগইন যাচাই করুন এবং তারপরে সমস্ত হোল্ডিংয়ের তথ্য সাবস্ক্রাইব করুন। সময়মতো পিং প্রেরণ করুন, এক্সচেঞ্জ সার্ভারটি পং প্রতিক্রিয়া জানায়।
function getLogin(pAccessKey, pSecretKey, pPassphrase) { // 签名函数,用于登录 var ts = (new Date().getTime() / 1000) + "" var login = { "op": "login", "args":[{ "apiKey" : pAccessKey, "passphrase" : pPassphrase, "timestamp" : ts, "sign" : exchange.HMAC("sha256", "base64", ts + "GET" + "/users/self/verify", pSecretKey) }] } return login } var client_private = null function main() { // 因为read函数使用了超时设置,过滤超时的报错,否则会有冗余错误输出 SetErrorFilter("timeout") // 持仓频道订阅信息 var posSubscribe = { "op": "subscribe", "args": [{ "channel": "positions", "instType": "ANY" }] } var payload = JSON.stringify(getLogin(accessKey, secretKey, passphrase)) client_private = Dial("wss://ws.okex.com:8443/ws/v5/private|reconnect=true&payload=" + payload) Sleep(3000) // 登录时,不能立即订阅私有频道,需要等待服务器反应 if (client_private) { client_private.write(JSON.stringify(posSubscribe)) var lastPingTS = new Date().getTime() while (true) { var buf = client_private.read(2000) if (buf) { Log(buf) } // 发送心跳包 var nowPingTS = new Date().getTime() if (nowPingTS - lastPingTS > 10 * 1000) { client_private.write("ping") lastPingTS = nowPingTS } } } } function onexit() { var ret = client_private.close() Log("关闭连接!", ret) }