nchan/README.md
2025-12-06 13:23:59 +04:00

132 lines
2.1 KiB
Markdown

# Simple lua nchan publisher
## Install
```
luarocks install nchan
```
## Usage
### Channels
***Publish message in channel***
```
local channel = require('nchan.channel')
channel.nchan.host = 'http://localhost'
channel.nchan.endpoint = 'pub'
result,msg = channel.publish('test')
```
***Connect with Basic auth***
```
local channel = require('nchan.channel')
channel.nchan.host = 'http://localhost'
channel.nchan.endpoint = 'pub'
channel.nchan.login = 'test'
channel.nchan.password = 'test'
result,msg = channel.publish('test')
```
***Connect with Bearer auth***
```
local channel = require('nchan.channel')
channel.nchan.host = 'http://localhost'
channel.nchan.endpoint = 'pub'
channel.nchan.token = 'token'
result,msg = channel.publish('test')
```
***Delete channel***
```
local channel = require('nchan.channel')
channel.nchan.host = 'http://localhost'
channel.nchan.endpoint = 'pub'
result,msg = channel.delete()
```
***Get channel info***
```
local channel = require('nchan.channel')
channel.nchan.host = 'http://localhost'
channel.nchan.endpoint = 'pub'
result,msg = channel.status()
print(result)
print(msg.messages)
print(msg.requested)
print(msg.subscribers)
print(msg.last_message_id)
```
Channel info also available after publishing:
```
local channel = require('nchan.channel')
channel.nchan.host = 'http://localhost'
channel.nchan.endpoint = 'pub'
result,msg = channel.publish('test')
print(result)
print(channel.nchan.info.messages)
print(channel.nchan.info.requested)
print(channel.nchan.info.subscribers)
print(channel.nchan.info.last_message_id)
```
### Groups
***Get group info***
```
local channel = require('nchan.group')
channel.nchan.host = 'http://localhost'
channel.nchan.endpoint = 'pub'
result,msg = group.status()
print(result)
print(msg.messages)
print(msg.requested)
print(msg.subscribers)
print(msg.last_message_id)
```
***Set group limits***
```
local channel = require('nchan.group')
channel.nchan.host = 'http://localhost'
channel.nchan.endpoint = 'pub'
result,msg = group.limits({
['max_channels']=15,
['max_subs']=1000
})
```