?昨天寫(xiě)腳本的時(shí)候需要用到sockcet接口,在網(wǎng)上苦尋一番之后發(fā)現(xiàn)這個(gè)段代碼還是比較ok的,今天拿出來(lái)給大家分享一下,需要的直接?。?!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-852917.html
// 新建一個(gè)WebSocket
// 指定websocket的事件回調(diào)在當(dāng)前線(xiàn)程(好處是沒(méi)有多線(xiàn)程問(wèn)題要處理,壞處是不能阻塞當(dāng)前線(xiàn)程,包括死循環(huán))
// 不加后面的參數(shù)則回調(diào)在IO線(xiàn)程
let ws = web.newWebSocket("wss://xxx.com", {
eventThread: 'this'
});
console.show();
// 監(jiān)聽(tīng)他的各種事件
ws.on("open", (res, ws) => {
log("WebSocket已連接");
}).on("failure", (err, res, ws) => {
log("WebSocket連接失敗");
console.error(err);
}).on("closing", (code, reason, ws) => {
log("WebSocket關(guān)閉中");
}).on("text", (text, ws) => {
console.info("收到文本消息: ", text);
}).on("binary", (bytes, ws) => {
console.info("收到二進(jìn)制消息:");
console.info("hex: ", bytes.hex());
console.info("base64: ", bytes.base64());
console.info("md5: ", bytes.md5());
console.info("size: ", bytes.size());
console.info("bytes: ", bytes.toByteArray());
}).on("closed", (code, reason, ws) => {
log("WebSocket已關(guān)閉: code = %d, reason = %s", code, reason);
});
// 發(fā)送文本消息
log("發(fā)送消息: Hello, WebSocket!");
ws.send("h");
setTimeout(() => {
// 兩秒后發(fā)送二進(jìn)制消息
log("發(fā)送二進(jìn)制消息: 5piO5aSp5L2g6IO96ICDMTAw5YiG44CC");
ws.send(web.ByteString.decodeBase64("5piO5aSp5L2g6IO96ICDMTAw5YiG44CC"));
}, 2000);
setTimeout(() => {
// 8秒后斷開(kāi)WebSocket
log("斷開(kāi)WebSocket");
// 1000表示正常關(guān)閉
ws.close(1000, null);
}, 8000);
setTimeout(() => {
log("退出程序");
}, 12000)
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-852917.html
到了這里,關(guān)于autox.js鏈接WebSocket實(shí)戰(zhàn),需要的老鐵直接拿走的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!