Thank Tim, I really appreciate you taking the time to reply. I have to
tell you I have been eating and sleeping Luvit for the last month. As a
Lua junkie, I really have enjoyed learning about it and using it, so thank
you.
Anyway, I found this bit of code for node. I just need to rework it for
Luvit. Does this look about right in theory?
// define your terminator for easy reference, changesvar msgTerminator = '\n'//
create a place to accumulate your messages even if they come in piecesvar buf;
socket.on('data', function(data){
// add new data to your buffer
buf += data;
// see if there is one or more complete messages
if (buf.indexOf(msgTerminator) >= 0) {
// slice up the buffer into messages
var msgs = data.split(msgTerminator);
for (var i = 0; i < msgs.length - 2; ++i) {
// walk through each message in order
var msg = msgs[i];
// pick off the current message
console.log('Data in server, sending to handle()');
// send only the current message to your handler
worker.handle(msg, socket);
}
buf = msgs[msgs.length - 1]; // put back any partial message into your
buffer
}});
Thanks again.
On Monday, January 6, 2014 3:21:41 PM UTC-6, Tim Caswell wrote:
>
> There is no option built-in. I don't know of any existing libraries that
> do this. I would write it as a parser function that wraps the callback.
>
> local function parseLine(emit)
> -- setup local variables here
> return function (chunk)
> -- look for newlines in chunk flushing and emit()ing data as you come
> across them
> -- store leftover bytes in local variable for the next chunk.
> end
> end
>
> client:on("data", parseLine(function( line )
> -- data is now line parsed.
> end))
>
>
>
>
> On Mon, Jan 6, 2014 at 2:14 PM, develephant
> <[email protected]<javascript:>
> > wrote:
>
>> Hello,
>>
>> I'm looking to see if there is a simple way to read the luvit tcp (smart)
>> socket by line similar to the straight luasocket:
>>
>> client:*receive(*[pattern [, prefix]]*)*
>>
>> - '*l': reads a line of text from the socket. The line is terminated
>> by a LF character (ASCII 10), optionally preceded by a CR character
>> (ASCII 13). The CR and LF characters are not included in the returned
>> line.
>> In fact, *all* CR characters are ignored by the pattern. This is the
>> default pattern;
>>
>>
>> http://w3.impa.br/~diego/software/luasocket/tcp.html#receive
>>
>> In luvit for example:
>> client:on( "data", function( data )
>> --data is a line terminated by "\r\n"
>> end)
>>
>> I'm a newbie on node, but I can't seem to find any option. Is this
>> possible? Or will I need to parse it up myself? Any advice would be
>> appreciated.
>>
>> Cheers.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "luvit" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>
--
You received this message because you are subscribed to the Google Groups
"luvit" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.