Wowza Community

Wowza Play method serverside

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 :wink:

This is a duplicate

Regards,

Salvadore