UNPKG

isock

Version:

Web -> Non-Web connectionusing Socket.io

73 lines 2.22 kB
if (module !== undefined) { io = require("socket.io-client"); } isock = (function (ops) { ops = ops || {}; ops.server = ops.server || "localhost"; ops.port = ops.port || 24681; var socket = null; var online = false; var start = (function () { socket = io("http://" + ops.server + ":" + ops.port); socket.on("connect", function () { online = true; on_connect(socket); }); socket.on("data", function (data) { on_receive(data.data); }); socket.on("disconnect", function () { online = false; on_disconnect(socket); }); console.log("iSock client ready"); }); var send = (function (data) { if (!online) { return false; } socket.emit("data", { data }); return true; }); var rsend = (function (data, reply) { if (!online) { return false; } var nonce = (function () { var time = new Date().getTime(); var random = Math.random(); var mix = time * random; return Math.round(mix); })(); socket.emit("data", { data, nonce }); socket.on(nonce, function (data) { reply(data.data); }); }); var on_connect = (function () { }); var on_receive = (function () { }); var on_disconnect = (function () { }); return { start: start, on: (function (name, fun) { if (!online) { return; } socket.on(name, fun); }), on_connect: (function (fun) { on_connect = fun; }), on_receive: (function (fun) { on_receive = fun; }), on_disconnect: (function (fun) { on_disconnect = fun; }), emit: (function (name, data) { if (!online) { return; } socket.emit(name, data); }), send: send, rsend: rsend, close: (function () { socket.close(); }) }; }); isock_client = isock; if (module !== undefined) { module.exports = isock; }