Can get socket state
This commit is contained in:
parent
62b4e43ebe
commit
08d1eedad8
3 changed files with 57 additions and 6 deletions
|
|
@ -18,6 +18,13 @@ describe("SRT library", () => {
|
|||
expect(socket).not.toEqual(SRT.ERROR);
|
||||
});
|
||||
|
||||
it("can get socket state", () => {
|
||||
const srt = new SRT();
|
||||
const socket = srt.createSocket();
|
||||
const state = srt.getSockState(socket);
|
||||
expect(state).toEqual(SRT.SRTS_INIT);
|
||||
});
|
||||
|
||||
it("can set SRT sockopt SRTO_MSS", () => {
|
||||
const srt = new SRT();
|
||||
const socket = srt.createSocket();
|
||||
|
|
|
|||
|
|
@ -23,14 +23,33 @@ Napi::Object NodeSRT::Init(Napi::Env env, Napi::Object exports) {
|
|||
InstanceMethod("write", &NodeSRT::Write),
|
||||
InstanceMethod("setSockOpt", &NodeSRT::SetSockOpt),
|
||||
InstanceMethod("getSockOpt", &NodeSRT::GetSockOpt),
|
||||
InstanceMethod("getSockState", &NodeSRT::GetSockState),
|
||||
InstanceMethod("epollCreate", &NodeSRT::EpollCreate),
|
||||
InstanceMethod("epollAddUsock", &NodeSRT::EpollAddUsock),
|
||||
InstanceMethod("epollWait", &NodeSRT::EpollWait),
|
||||
|
||||
StaticValue("ERROR", Napi::Number::New(env, -1)),
|
||||
StaticValue("INVALID_SOCK", Napi::Number::New(env, -1)),
|
||||
StaticValue("ERROR", Napi::Number::New(env, SRT_ERROR)),
|
||||
StaticValue("INVALID_SOCK", Napi::Number::New(env, SRT_INVALID_SOCK)),
|
||||
|
||||
StaticValue("SRTO_MSS", Napi::Number::New(env, 0)),
|
||||
StaticValue("SRTO_SNDSYN", Napi::Number::New(env, 1)),
|
||||
StaticValue("SRTO_RCVSYN", Napi::Number::New(env, 2)),
|
||||
// Socket options
|
||||
StaticValue("SRTO_MSS", Napi::Number::New(env, SRTO_MSS)),
|
||||
StaticValue("SRTO_SNDSYN", Napi::Number::New(env, SRTO_SNDSYN)),
|
||||
StaticValue("SRTO_RCVSYN", Napi::Number::New(env, SRTO_RCVSYN)),
|
||||
|
||||
// Socket status
|
||||
StaticValue("SRTS_INIT", Napi::Number::New(env, SRTS_INIT)),
|
||||
StaticValue("SRTS_OPENED", Napi::Number::New(env, SRTS_OPENED)),
|
||||
StaticValue("SRTS_LISTENING", Napi::Number::New(env, SRTS_LISTENING)),
|
||||
StaticValue("SRTS_CONNECTING", Napi::Number::New(env, SRTS_CONNECTING)),
|
||||
StaticValue("SRTS_CONNECTED", Napi::Number::New(env, SRTS_CONNECTED)),
|
||||
StaticValue("SRTS_BROKEN", Napi::Number::New(env, SRTS_BROKEN)),
|
||||
StaticValue("SRTS_NONEXIST", Napi::Number::New(env, SRTS_NONEXIST)),
|
||||
|
||||
// Epoll options
|
||||
StaticValue("EPOLL_IN", Napi::Number::New(env, SRT_EPOLL_IN)),
|
||||
StaticValue("EPOLL_OUT", Napi::Number::New(env, SRT_EPOLL_OUT)),
|
||||
StaticValue("EPOLL_ERR", Napi::Number::New(env, SRT_EPOLL_ERR)),
|
||||
StaticValue("EPOLL_ET", Napi::Number::New(env, SRT_EPOLL_ET)),
|
||||
});
|
||||
|
||||
constructor = Napi::Persistent(func);
|
||||
|
|
@ -277,4 +296,24 @@ Napi::Value NodeSRT::GetSockOpt(const Napi::CallbackInfo& info) {
|
|||
return empty;
|
||||
}
|
||||
return empty;
|
||||
}
|
||||
}
|
||||
|
||||
Napi::Value NodeSRT::GetSockState(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
|
||||
Napi::Number socketValue = info[0].As<Napi::Number>();
|
||||
return Napi::Number::New(env, srt_getsockstate(socketValue));
|
||||
}
|
||||
|
||||
Napi::Value NodeSRT::EpollCreate(const Napi::CallbackInfo& info) {
|
||||
|
||||
}
|
||||
|
||||
Napi::Value NodeSRT::EpollAddUsock(const Napi::CallbackInfo& info) {
|
||||
|
||||
}
|
||||
|
||||
Napi::Value NodeSRT::EpollWait(const Napi::CallbackInfo& info) {
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,4 +18,9 @@ class NodeSRT : public Napi::ObjectWrap<NodeSRT> {
|
|||
Napi::Value Write(const Napi::CallbackInfo& info);
|
||||
Napi::Value SetSockOpt(const Napi::CallbackInfo& info);
|
||||
Napi::Value GetSockOpt(const Napi::CallbackInfo& info);
|
||||
Napi::Value GetSockState(const Napi::CallbackInfo& info);
|
||||
|
||||
Napi::Value EpollCreate(const Napi::CallbackInfo& info);
|
||||
Napi::Value EpollAddUsock(const Napi::CallbackInfo& info);
|
||||
Napi::Value EpollWait(const Napi::CallbackInfo& info);
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue