Спасибо, ждем. И если будет возможность сделать передачу кастом полей при ns.play('Name', {custom: {token : '8fg876grrjkbnbe'}}) и ns.publish('Name', {custom: {token : '8fg876grrjkbnbe'}}); Будем очень признательны.Спасибо. Воспроизводится. Как только будут новости по этой проблеме, отпишу.
По другим вопросам лучше создать отдельную тему.
connection = new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
var obj:Object = new Object();
obj.appKey = 'flashStreamingApp';
obj.custom = new Object();
obj.custom.token = 'ddddddddddd';
connection.connect(UrlStr, obj);
http://host:9091/rest-api/connection/find_all
custom: {
token: 'ddddddddddd'
}
rtmp://host:1935/live?token=ddddddddddd
public function publish(name:String = null, type:String = null):void
Благодарю, оперативно , порадовали )Добавили. Сборка сервера последняя 2181.
Теперь при коннекте с флэша или с Web SDK, на REST API будет видно custom-объект.
Пример:
1. Коннект с Flash:
2. REST запросCode:connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); var obj:Object = new Object(); obj.appKey = 'flashStreamingApp'; obj.custom = new Object(); obj.custom.token = 'ddddddddddd'; connection.connect(UrlStr, obj);
3. РезультатCode:http://host:9091/rest-api/connection/find_all
Тоже самое будет, если при коннекте с Flash передать параметр в URLCode:custom: { token: 'ddddddddddd' }
При этом, если параметры были переданы и в коде и в RTMP URL, то код будет иметь приоритет.Code:rtmp://host:1935/live?token=ddddddddddd
По методам NetStream.play() и NetStream.publish() добавить нет возможности, т.к. это методы AS3 API и они не позволяют передавать дополнительных параметров.
http://help.adobe.com/ru_RU/FlashPl...onscript/3/flash/net/NetStream.html#publish()
Code:public function publish(name:String = null, type:String = null):void
WCS_HOME/logs/flashphoner_manager.log
WCS_HOME/logs/server_logs/flashphoner.log
WCS_HOME/conf
11:40:38,596 ERROR agerRemoteRmiService - RMI TCP Connection(41)-127.0.0.1 Got exception in REST
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://10.10.10.191:7777/connect":В соединении отказано (Connection refused); nested exception is java.net.ConnectException: В соединении отказано (Connection refused)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:561)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:506)
at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:334)
at com.flashphoner.server.manager.rmi.operations.impl.ManagerRemoteRmiService.postForObject(ManagerRemoteRmiService.java:104)
at com.flashphoner.server.manager.rmi.operations.impl.ManagerRemoteRmiService.connect(ManagerRemoteRmiService.java:71)
at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:324)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: В соединении отказано (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
at sun.net.www.http.HttpClient.New(HttpClient.java:308)
at sun.net.www.http.HttpClient.New(HttpClient.java:326)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1202)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966)
at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:78)
at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)
at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:52)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:545)
... 20 more
{
"custom": {
"user": "135212",
"token": "jpj3rcivkm07q8hau9jasbf4s4"
},
"nodeId": null,
"appKey": "flashStreamingApp",
"sessionId": "d27a54cb-5137-4742-87aa-afe57db8e263",
"sipRegisterRequired": false,
"sipLogin": "ajojb8sm864f9l2pmmfqo79bmj",
"sipAuthenticationName": null,
"sipPassword": null,
"sipVisibleName": null,
"sipDomain": null,
"sipOutboundProxy": null,
"sipPort": 0,
"sipContactParams": null,
"width": 0,
"height": 0,
"supportedResolutions": "640x480",
"useProxy": false,
"useDTLS": false,
"useWsTunnel": false,
"useWsTunnelPacketization2": false,
"useBase64BinaryEncoding": false,
"mediaProviders": [
"Flash"
],
"appMainClass": null,
"appCallbackClass": null,
"authToken": null,
"status": null,
"restClientConfig": null,
"clientVersion": null,
"clientOSVersion": null,
"clientBrowserVersion": null
}
ex.post('/connect', function (req, res) {
console.log('connect');
req.body.restClientConfig = {
publishStream: {
"restExclude": "",
"clientExclude": "",
"restOnError": "FAIL",
"restPolicy": "NOTIFY",
"restOverwrite": ""
},
playStream: {
"restExclude": "",
"clientExclude": "",
"restOnError": "FAIL",
"restPolicy": "NOTIFY",
"restOverwrite": ""
}
};
res.json(req.body);
});
Быть может этот лог попал когда я перезагружал NodeJSПо логам, которые вы прислали, у вас метод коннект совсем не работает по Connection Refused: http://10.10.10.191:7777/connect
Сначала нужно с ним разобраться.
ConnectionStatusEvent - ESTABLISHED вызывается после того, как соединение установлено.
ConnectionStatusEvent - DISCONNECTED вызывается после того, как соединение установлено и потеряно.
Но у вас до этого, судя по логам, не доходит. Все останавливается на вызове /connect
Code:11:40:38,596 ERROR agerRemoteRmiService - RMI TCP Connection(41)-127.0.0.1 Got exception in REST org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://10.10.10.191:7777/connect":В соединении отказано (Connection refused); nested exception is java.net.ConnectException: В соединении отказано (Connection refused) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:561) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:506) at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:334) at com.flashphoner.server.manager.rmi.operations.impl.ManagerRemoteRmiService.postForObject(ManagerRemoteRmiService.java:104) at com.flashphoner.server.manager.rmi.operations.impl.ManagerRemoteRmiService.connect(ManagerRemoteRmiService.java:71) at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:324) at sun.rmi.transport.Transport$1.run(Transport.java:200) at sun.rmi.transport.Transport$1.run(Transport.java:197) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:196) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.net.ConnectException: В соединении отказано (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at sun.net.NetworkClient.doConnect(NetworkClient.java:180) at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) at sun.net.www.http.HttpClient.<init>(HttpClient.java:211) at sun.net.www.http.HttpClient.New(HttpClient.java:308) at sun.net.www.http.HttpClient.New(HttpClient.java:326) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1202) at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966) at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:78) at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:52) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:545) ... 20 more
Это говорит о том, что коннет был установлен, например некоторое время назад.Так а как это может быть ? Если на REST соединение висит
Может быть. Но тогда нам нужны логи, не попадающие под перезагрузку. Потому что в этих явно видно проблемы с коннектом.Быть может этот лог попал когда я перезагружал NodeJS
com.flashphoner.server.client.handler.wcs4.FlashStreamingHandler
show apps -d
com.flashphoner.server.client.handler.wcs4.FlashStreamingHandler
com.flashphoner.server.client.handler.wcs4.FlashRoomHandler
update app -m com.flashphoner.server.client.handler.wcs4.FlashRoomHandler flashStreamingApp
12:14:09,510 INFO agerRemoteRmiService - RMI TCP Connection(30)-192.168.88.59 SEND REST OBJECT ==>
URL:http://localhost:9091/EchoApp/ConnectionStatusEvent
OBJECT:
{
"nodeId" : "H4gfHeULtX6ddGGUWwZxhUNyqZHUFH8j@192.168.1.59",
"appKey" : "flashStreamingApp",
"sessionId" : "74d8e67a-2b55-4016-bd21-0b3460191b10",
"status" : "DISCONNECTED"
}
12:14:09,527 INFO agerRemoteRmiService - RMI TCP Connection(30)-192.168.88.59 RECEIVED REST OBJECT <==
URL:http://localhost:9091/EchoApp/ConnectionStatusEvent
OBJECT:
{
"nodeId" : "H4gfHeULtX6ddGGUWwZxhUNyqZHUFH8j@192.168.1.59",
"appKey" : "flashStreamingApp",
"sessionId" : "74d8e67a-2b55-4016-bd21-0b3460191b10",
"status" : "DISCONNECTED"
}