Hi, sorry my english is so bad, but i’ll try to explain my problem.
So, i should do a node js application who communicate with a wowza (engine 4.2) server to certified client and authorize play stream.
To communicate i use socket and a thread to parse command from node js.
client ==> node js
client ==> wowza server (play stream)
wowza server ==> node js (call node js to authorize user to play stream)
node js ==> wowza server (it’s ok you can play stream).
communication beetween node and wowza is ok. But i can’t play stream by serverside.
ERROR server comment - invoke(play): java.lang.reflect.InvocationTargetException|at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)|at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)|at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)|at java.lang.reflect.Method.invoke(Unknown Source)|at com.wowza.wms.module.ModuleFunction.invoke(ModuleFunction.java:369)|
and now java code
PLAY from custom module
public void play(IClient client, RequestFunction function, AMFDataList params) { String id = client.getProperties().getPropertyStr("userID"); String token = client.getProperties().getPropertyStr("token"); int authorizedToPlay = client.getProperties().getPropertyInt("authorizedToPlay", 0); if(authorizedToPlay == 1){ invokePrevious(this, client, function, params); }else{ if(authorizedToPlay == -1){ client.rejectConnection("not authorized"); client.shutdownClient(); }else{ nodeJSCommunicator.requestPlayStream(id, token, client.getIp()); } } }
nodeJSCommunicator call to play
public void run() { while(running){ try { message = in.readLine(); JSONObject data = new JSONObject(message); if(data.getString("type").equals("disconnect")){ this.server.disconnectUser(data.getString("userID")); } if(data.getString("type").equals("play_stream")){ AMFDataList datalist = new AMFDataList(); datalist.add(0, new AMFDataItem("play")); datalist.add(1, new AMFDataItem("0.0")); datalist.add(2, new AMFDataItem("")); datalist.add(3, new AMFDataItem("gauthier.f4v")); datalist.add(4, new AMFDataItem(0)); datalist.add(5, new AMFDataItem(0)); IClient client = this.server.getClient(data.getString("userID")); if(client != null){ if(data.getString("status").equals("valid")){ client.getProperties().setProperty("authorizedToPlay", 1); }else{ client.getProperties().setProperty("authorizedToPlay", -1); } this.server.play(client, null, datalist); } } } catch (IOException e) { running = false; } } }
this.server refer to custommodule.
How can i do it?
Thx for watching