コード例 #1
0
ファイル: ____chat-copy.js プロジェクト: Raynos/distributed
    chat.createStream = function () {
        var stream = MessageStream(function (message) {
            if (message.clock) {
                history.forEach(function (msg) {
                    if (!seen(message.clock, msg)) stream.send(msg)
                })
            } else if (typeof message.since === "number") {
                history.forEach(function (msg) {
                    if (!old_seen(message.since, msg)) stream.send(msg)
                })
            } else if (!seen(clock, message)) {
                chat.emit("message", message, stream)
            }
        })

        chat.on('message', function (message, source) {
            if (stream !== source) {
                stream.send(message)
            }
        })

        stream.send({ clock: clock })
        // stream.send({ since: lastMessageTimestamp })

        return stream
    }
コード例 #2
0
ファイル: 2-reconnection.js プロジェクト: Raynos/distributed
    chat.createStream = function () {
        var stream = MessageStream(function (message) {
            if (message.ts > lastMessage) {
                chat.emit("message", message, stream)
            }
        })

        chat.on("message", function (message, source) {
            if (source !== stream) stream.queue(message)
        })

        return stream
    }
コード例 #3
0
ファイル: 3-naive-history.js プロジェクト: Raynos/distributed
    chat.createStream = function () {
        var stream = MessageStream(function (message) {
            if (typeof message.since === "number") {
                history.forEach(function (e) {
                    if (message.ts > message.since) stream.queue(e)
                })
            } else if (message.ts > lastMessage) {
                chat.emit("message", message, stream)
            }
        })

        chat.on("message", function (message, source) {
            if (source !== stream) stream.queue(message)
        })

        stream.queue({ since: lastMessage, id: id })

        return stream
    }