sync
This commit is contained in:
parent
096dab86a9
commit
02ca3e5c1d
21
.idea/deployment.xml
Executable file
21
.idea/deployment.xml
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="PublishConfigData">
|
||||||
|
<serverData>
|
||||||
|
<paths name="griefstore">
|
||||||
|
<serverdata>
|
||||||
|
<mappings>
|
||||||
|
<mapping local="$PROJECT_DIR$" web="/" />
|
||||||
|
</mappings>
|
||||||
|
</serverdata>
|
||||||
|
</paths>
|
||||||
|
<paths name="kurento">
|
||||||
|
<serverdata>
|
||||||
|
<mappings>
|
||||||
|
<mapping local="$PROJECT_DIR$" web="/" />
|
||||||
|
</mappings>
|
||||||
|
</serverdata>
|
||||||
|
</paths>
|
||||||
|
</serverData>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/misc.xml
Executable file
6
.idea/misc.xml
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="JavaScriptSettings">
|
||||||
|
<option name="languageLevel" value="ES6" />
|
||||||
|
</component>
|
||||||
|
</project>
|
8
.idea/modules.xml
Executable file
8
.idea/modules.xml
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/webRTC-to-stream.iml" filepath="$PROJECT_DIR$/.idea/webRTC-to-stream.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
Executable file
6
.idea/vcs.xml
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
8
.idea/webRTC-to-stream.iml
Executable file
8
.idea/webRTC-to-stream.iml
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="WEB_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
15
.idea/webServers.xml
Executable file
15
.idea/webServers.xml
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="WebServers">
|
||||||
|
<option name="servers">
|
||||||
|
<webServer id="0f4f9b22-a32e-4f65-bb1a-2b11a945afe2" name="kurento" url="http://kurento.fishrungames.com">
|
||||||
|
<fileTransfer host="kurento.fishrungames.com" port="22" privateKey="C:\cygwin64\home\OfficePC1\.ssh\id_rsa_ArtyomAbubakirov" rootFolder="/home/ubuntu" accessType="SFTP" keyPair="true">
|
||||||
|
<advancedOptions>
|
||||||
|
<advancedOptions dataProtectionLevel="Private" />
|
||||||
|
</advancedOptions>
|
||||||
|
<option name="port" value="22" />
|
||||||
|
</fileTransfer>
|
||||||
|
</webServer>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
225
.idea/workspace.xml
Executable file
225
.idea/workspace.xml
Executable file
@ -0,0 +1,225 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="e01b5232-b142-4c44-a053-560a37ce2506" name="Default" comment="">
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/package-lock.json" afterPath="$PROJECT_DIR$/package-lock.json" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/run.sh" afterPath="$PROJECT_DIR$/run.sh" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/server.js" afterPath="$PROJECT_DIR$/server.js" />
|
||||||
|
</list>
|
||||||
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
|
<option name="TRACKING_ENABLED" value="true" />
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="FileEditorManager">
|
||||||
|
<leaf>
|
||||||
|
<file leaf-file-name="server.js" pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/server.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="304">
|
||||||
|
<caret line="80" column="0" lean-forward="true" selection-start-line="80" selection-start-column="0" selection-end-line="80" selection-end-column="0" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#939#1693#0" expanded="false" />
|
||||||
|
<element signature="e#2702#3574#0" expanded="false" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="server2.js" pinned="false" current-in-tab="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/server2.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="210">
|
||||||
|
<caret line="10" column="22" lean-forward="false" selection-start-line="10" selection-start-column="22" selection-end-line="10" selection-end-column="22" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="server.js" pinned="true" current-in-tab="false">
|
||||||
|
<entry file="remoteDeploymentFS://<0f4f9b22-a32e-4f65-bb1a-2b11a945afe2>/work/webRTCtoStream/server.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="483">
|
||||||
|
<caret line="77" column="18" lean-forward="true" selection-start-line="77" selection-start-column="18" selection-end-line="77" selection-end-column="18" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
</leaf>
|
||||||
|
</component>
|
||||||
|
<component name="FindInProjectRecents">
|
||||||
|
<findStrings>
|
||||||
|
<find>initConnection</find>
|
||||||
|
</findStrings>
|
||||||
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
|
</component>
|
||||||
|
<component name="IdeDocumentHistory">
|
||||||
|
<option name="CHANGED_PATHS">
|
||||||
|
<list>
|
||||||
|
<option value="$PROJECT_DIR$/server.js" />
|
||||||
|
<option value="<0f4f9b22-a32e-4f65-bb1a-2b11a945afe2>/work/webRTCtoStream/server.js" />
|
||||||
|
<option value="$PROJECT_DIR$/server2.js" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
|
||||||
|
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
|
||||||
|
<component name="JsFlowSettings">
|
||||||
|
<service-enabled>true</service-enabled>
|
||||||
|
<exe-path />
|
||||||
|
<annotation-enable>false</annotation-enable>
|
||||||
|
<other-services-enabled>true</other-services-enabled>
|
||||||
|
<auto-save>true</auto-save>
|
||||||
|
</component>
|
||||||
|
<component name="JsGulpfileManager">
|
||||||
|
<detection-done>true</detection-done>
|
||||||
|
<sorting>DEFINITION_ORDER</sorting>
|
||||||
|
</component>
|
||||||
|
<component name="NodeModulesDirectoryManager">
|
||||||
|
<handled-path value="$PROJECT_DIR$/node_modules" />
|
||||||
|
</component>
|
||||||
|
<component name="PackageJsonUpdateNotifier">
|
||||||
|
<dismissed value="$PROJECT_DIR$/package.json" />
|
||||||
|
</component>
|
||||||
|
<component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" />
|
||||||
|
<component name="ProjectFrameBounds" extendedState="6">
|
||||||
|
<option name="x" value="-35" />
|
||||||
|
<option name="y" value="73" />
|
||||||
|
<option name="width" value="1938" />
|
||||||
|
<option name="height" value="850" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectView">
|
||||||
|
<navigator currentView="ProjectPane" proportions="" version="1">
|
||||||
|
<flattenPackages />
|
||||||
|
<showMembers />
|
||||||
|
<showModules />
|
||||||
|
<showLibraryContents />
|
||||||
|
<hideEmptyPackages />
|
||||||
|
<abbreviatePackageNames />
|
||||||
|
<autoscrollToSource />
|
||||||
|
<autoscrollFromSource />
|
||||||
|
<sortByType />
|
||||||
|
<manualOrder />
|
||||||
|
<foldersAlwaysOnTop value="true" />
|
||||||
|
</navigator>
|
||||||
|
<panes>
|
||||||
|
<pane id="ProjectPane">
|
||||||
|
<subPane>
|
||||||
|
<expand>
|
||||||
|
<path>
|
||||||
|
<item name="webRTC-to-stream" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="webRTC-to-stream" type="2a2b976b:PhpTreeStructureProvider$1" />
|
||||||
|
</path>
|
||||||
|
</expand>
|
||||||
|
<select />
|
||||||
|
</subPane>
|
||||||
|
</pane>
|
||||||
|
<pane id="Scratches" />
|
||||||
|
<pane id="Scope" />
|
||||||
|
</panes>
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent">
|
||||||
|
<property name="nodejs_interpreter_path" value="C:/Program Files/nodejs/node" />
|
||||||
|
<property name="WebServerToolWindowFactoryState" value="true" />
|
||||||
|
<property name="settings.editor.selected.configurable" value="Settings.JavaScript" />
|
||||||
|
<property name="JavaScriptPreferStrict" value="false" />
|
||||||
|
<property name="JavaScriptWeakerCompletionTypeGuess" value="true" />
|
||||||
|
<property name="WebServerToolWindowPanel.toolwindow.show.size" value="false" />
|
||||||
|
<property name="WebServerToolWindowPanel.toolwindow.show.date" value="false" />
|
||||||
|
<property name="WebServerToolWindowPanel.toolwindow.show.permissions" value="false" />
|
||||||
|
<property name="WebServerToolWindowPanel.toolwindow.highlight.symlinks" value="true" />
|
||||||
|
<property name="WebServerToolWindowPanel.toolwindow.highlight.mappings" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="RunDashboard">
|
||||||
|
<option name="ruleStates">
|
||||||
|
<list>
|
||||||
|
<RuleState>
|
||||||
|
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
|
||||||
|
</RuleState>
|
||||||
|
<RuleState>
|
||||||
|
<option name="name" value="StatusDashboardGroupingRule" />
|
||||||
|
</RuleState>
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ShelveChangesManager" show_recycled="false">
|
||||||
|
<option name="remove_strategy" value="false" />
|
||||||
|
</component>
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="Default task">
|
||||||
|
<changelist id="e01b5232-b142-4c44-a053-560a37ce2506" name="Default" comment="" />
|
||||||
|
<created>1527596922723</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1527596922723</updated>
|
||||||
|
<workItem from="1527596924827" duration="9769000" />
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="TimeTrackingManager">
|
||||||
|
<option name="totallyTimeSpent" value="9769000" />
|
||||||
|
</component>
|
||||||
|
<component name="ToolWindowManager">
|
||||||
|
<frame x="-9" y="-9" width="1938" height="1048" extended-state="6" />
|
||||||
|
<editor active="true" />
|
||||||
|
<layout>
|
||||||
|
<window_info id="Remote Host" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3296875" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
||||||
|
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
||||||
|
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="File Transfer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.121212125" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
||||||
|
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||||
|
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||||
|
</layout>
|
||||||
|
</component>
|
||||||
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
<option name="version" value="1" />
|
||||||
|
</component>
|
||||||
|
<component name="VcsContentAnnotationSettings">
|
||||||
|
<option name="myLimit" value="2678400000" />
|
||||||
|
</component>
|
||||||
|
<component name="XDebuggerManager">
|
||||||
|
<breakpoint-manager>
|
||||||
|
<option name="time" value="3" />
|
||||||
|
</breakpoint-manager>
|
||||||
|
<watches-manager />
|
||||||
|
</component>
|
||||||
|
<component name="editorHistoryManager">
|
||||||
|
<entry file="file://$PROJECT_DIR$/server.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="304">
|
||||||
|
<caret line="80" column="0" lean-forward="true" selection-start-line="80" selection-start-column="0" selection-end-line="80" selection-end-column="0" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#939#1693#0" expanded="false" />
|
||||||
|
<element signature="e#2702#3574#0" expanded="false" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/server2.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="210">
|
||||||
|
<caret line="10" column="22" lean-forward="false" selection-start-line="10" selection-start-column="22" selection-end-line="10" selection-end-column="22" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</component>
|
||||||
|
</project>
|
254
package-lock.json
generated
Normal file → Executable file
254
package-lock.json
generated
Normal file → Executable file
@ -9,7 +9,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
|
||||||
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
|
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"mime-types": "2.1.18",
|
"mime-types": "~2.1.18",
|
||||||
"negotiator": "0.6.1"
|
"negotiator": "0.6.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -23,7 +23,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.4.1.tgz",
|
||||||
"integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==",
|
"integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"humanize-ms": "1.2.1"
|
"humanize-ms": "^1.2.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ajv": {
|
"ajv": {
|
||||||
@ -31,10 +31,10 @@
|
|||||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
|
||||||
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
|
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"co": "4.6.0",
|
"co": "^4.6.0",
|
||||||
"fast-deep-equal": "1.1.0",
|
"fast-deep-equal": "^1.0.0",
|
||||||
"fast-json-stable-stringify": "2.0.0",
|
"fast-json-stable-stringify": "^2.0.0",
|
||||||
"json-schema-traverse": "0.3.1"
|
"json-schema-traverse": "^0.3.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"array-flatten": {
|
"array-flatten": {
|
||||||
@ -62,7 +62,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
|
||||||
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
|
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"lodash": "4.17.10"
|
"lodash": "^4.17.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"async-limiter": {
|
"async-limiter": {
|
||||||
@ -90,8 +90,8 @@
|
|||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
|
||||||
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
|
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"follow-redirects": "1.5.0",
|
"follow-redirects": "^1.3.0",
|
||||||
"is-buffer": "1.1.6"
|
"is-buffer": "^1.1.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"backo2": {
|
"backo2": {
|
||||||
@ -115,7 +115,7 @@
|
|||||||
"integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
|
"integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"tweetnacl": "0.14.5"
|
"tweetnacl": "^0.14.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"better-assert": {
|
"better-assert": {
|
||||||
@ -137,15 +137,15 @@
|
|||||||
"integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
|
"integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"bytes": "3.0.0",
|
"bytes": "3.0.0",
|
||||||
"content-type": "1.0.4",
|
"content-type": "~1.0.4",
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
"depd": "1.1.2",
|
"depd": "~1.1.1",
|
||||||
"http-errors": "1.6.3",
|
"http-errors": "~1.6.2",
|
||||||
"iconv-lite": "0.4.19",
|
"iconv-lite": "0.4.19",
|
||||||
"on-finished": "2.3.0",
|
"on-finished": "~2.3.0",
|
||||||
"qs": "6.5.1",
|
"qs": "6.5.1",
|
||||||
"raw-body": "2.3.2",
|
"raw-body": "2.3.2",
|
||||||
"type-is": "1.6.16"
|
"type-is": "~1.6.15"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"bytes": {
|
"bytes": {
|
||||||
@ -173,7 +173,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
|
||||||
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
|
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"delayed-stream": "1.0.0"
|
"delayed-stream": "~1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"component-bind": {
|
"component-bind": {
|
||||||
@ -221,7 +221,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
||||||
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
|
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"assert-plus": "1.0.0"
|
"assert-plus": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"debug": {
|
"debug": {
|
||||||
@ -253,7 +253,7 @@
|
|||||||
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
|
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"jsbn": "0.1.1"
|
"jsbn": "~0.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ee-first": {
|
"ee-first": {
|
||||||
@ -276,12 +276,12 @@
|
|||||||
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz",
|
||||||
"integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==",
|
"integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"accepts": "1.3.5",
|
"accepts": "~1.3.4",
|
||||||
"base64id": "1.0.0",
|
"base64id": "1.0.0",
|
||||||
"cookie": "0.3.1",
|
"cookie": "0.3.1",
|
||||||
"debug": "3.1.0",
|
"debug": "~3.1.0",
|
||||||
"engine.io-parser": "2.1.2",
|
"engine.io-parser": "~2.1.0",
|
||||||
"ws": "3.3.3"
|
"ws": "~3.3.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"debug": {
|
"debug": {
|
||||||
@ -301,14 +301,14 @@
|
|||||||
"requires": {
|
"requires": {
|
||||||
"component-emitter": "1.2.1",
|
"component-emitter": "1.2.1",
|
||||||
"component-inherit": "0.0.3",
|
"component-inherit": "0.0.3",
|
||||||
"debug": "3.1.0",
|
"debug": "~3.1.0",
|
||||||
"engine.io-parser": "2.1.2",
|
"engine.io-parser": "~2.1.1",
|
||||||
"has-cors": "1.1.0",
|
"has-cors": "1.1.0",
|
||||||
"indexof": "0.0.1",
|
"indexof": "0.0.1",
|
||||||
"parseqs": "0.0.5",
|
"parseqs": "0.0.5",
|
||||||
"parseuri": "0.0.5",
|
"parseuri": "0.0.5",
|
||||||
"ws": "3.3.3",
|
"ws": "~3.3.1",
|
||||||
"xmlhttprequest-ssl": "1.5.5",
|
"xmlhttprequest-ssl": "~1.5.4",
|
||||||
"yeast": "0.1.2"
|
"yeast": "0.1.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -328,10 +328,10 @@
|
|||||||
"integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==",
|
"integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"after": "0.8.2",
|
"after": "0.8.2",
|
||||||
"arraybuffer.slice": "0.0.7",
|
"arraybuffer.slice": "~0.0.7",
|
||||||
"base64-arraybuffer": "0.1.5",
|
"base64-arraybuffer": "0.1.5",
|
||||||
"blob": "0.0.4",
|
"blob": "0.0.4",
|
||||||
"has-binary2": "1.0.3"
|
"has-binary2": "~1.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"escape-html": {
|
"escape-html": {
|
||||||
@ -349,36 +349,36 @@
|
|||||||
"resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz",
|
"resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz",
|
||||||
"integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
|
"integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"accepts": "1.3.5",
|
"accepts": "~1.3.5",
|
||||||
"array-flatten": "1.1.1",
|
"array-flatten": "1.1.1",
|
||||||
"body-parser": "1.18.2",
|
"body-parser": "1.18.2",
|
||||||
"content-disposition": "0.5.2",
|
"content-disposition": "0.5.2",
|
||||||
"content-type": "1.0.4",
|
"content-type": "~1.0.4",
|
||||||
"cookie": "0.3.1",
|
"cookie": "0.3.1",
|
||||||
"cookie-signature": "1.0.6",
|
"cookie-signature": "1.0.6",
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
"depd": "1.1.2",
|
"depd": "~1.1.2",
|
||||||
"encodeurl": "1.0.2",
|
"encodeurl": "~1.0.2",
|
||||||
"escape-html": "1.0.3",
|
"escape-html": "~1.0.3",
|
||||||
"etag": "1.8.1",
|
"etag": "~1.8.1",
|
||||||
"finalhandler": "1.1.1",
|
"finalhandler": "1.1.1",
|
||||||
"fresh": "0.5.2",
|
"fresh": "0.5.2",
|
||||||
"merge-descriptors": "1.0.1",
|
"merge-descriptors": "1.0.1",
|
||||||
"methods": "1.1.2",
|
"methods": "~1.1.2",
|
||||||
"on-finished": "2.3.0",
|
"on-finished": "~2.3.0",
|
||||||
"parseurl": "1.3.2",
|
"parseurl": "~1.3.2",
|
||||||
"path-to-regexp": "0.1.7",
|
"path-to-regexp": "0.1.7",
|
||||||
"proxy-addr": "2.0.3",
|
"proxy-addr": "~2.0.3",
|
||||||
"qs": "6.5.1",
|
"qs": "6.5.1",
|
||||||
"range-parser": "1.2.0",
|
"range-parser": "~1.2.0",
|
||||||
"safe-buffer": "5.1.1",
|
"safe-buffer": "5.1.1",
|
||||||
"send": "0.16.2",
|
"send": "0.16.2",
|
||||||
"serve-static": "1.13.2",
|
"serve-static": "1.13.2",
|
||||||
"setprototypeof": "1.1.0",
|
"setprototypeof": "1.1.0",
|
||||||
"statuses": "1.4.0",
|
"statuses": "~1.4.0",
|
||||||
"type-is": "1.6.16",
|
"type-is": "~1.6.16",
|
||||||
"utils-merge": "1.0.1",
|
"utils-merge": "1.0.1",
|
||||||
"vary": "1.1.2"
|
"vary": "~1.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"extend": {
|
"extend": {
|
||||||
@ -407,12 +407,12 @@
|
|||||||
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
|
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
"encodeurl": "1.0.2",
|
"encodeurl": "~1.0.2",
|
||||||
"escape-html": "1.0.3",
|
"escape-html": "~1.0.3",
|
||||||
"on-finished": "2.3.0",
|
"on-finished": "~2.3.0",
|
||||||
"parseurl": "1.3.2",
|
"parseurl": "~1.3.2",
|
||||||
"statuses": "1.4.0",
|
"statuses": "~1.4.0",
|
||||||
"unpipe": "1.0.0"
|
"unpipe": "~1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fluent-ffmpeg": {
|
"fluent-ffmpeg": {
|
||||||
@ -420,8 +420,8 @@
|
|||||||
"resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz",
|
||||||
"integrity": "sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ=",
|
"integrity": "sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"async": "2.6.1",
|
"async": ">=0.2.9",
|
||||||
"which": "1.3.1"
|
"which": "^1.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"follow-redirects": {
|
"follow-redirects": {
|
||||||
@ -429,7 +429,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz",
|
||||||
"integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==",
|
"integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "3.1.0"
|
"debug": "^3.1.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"debug": {
|
"debug": {
|
||||||
@ -452,9 +452,9 @@
|
|||||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
|
||||||
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
|
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"asynckit": "0.4.0",
|
"asynckit": "^0.4.0",
|
||||||
"combined-stream": "1.0.6",
|
"combined-stream": "1.0.6",
|
||||||
"mime-types": "2.1.18"
|
"mime-types": "^2.1.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"forwarded": {
|
"forwarded": {
|
||||||
@ -472,7 +472,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
||||||
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
|
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"assert-plus": "1.0.0"
|
"assert-plus": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"har-schema": {
|
"har-schema": {
|
||||||
@ -485,8 +485,8 @@
|
|||||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
|
||||||
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
|
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"ajv": "5.5.2",
|
"ajv": "^5.1.0",
|
||||||
"har-schema": "2.0.0"
|
"har-schema": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"has-binary2": {
|
"has-binary2": {
|
||||||
@ -507,10 +507,10 @@
|
|||||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
|
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
|
||||||
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
|
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"depd": "1.1.2",
|
"depd": "~1.1.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
"setprototypeof": "1.1.0",
|
"setprototypeof": "1.1.0",
|
||||||
"statuses": "1.4.0"
|
"statuses": ">= 1.4.0 < 2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"http-signature": {
|
"http-signature": {
|
||||||
@ -518,9 +518,9 @@
|
|||||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||||
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"assert-plus": "1.0.0",
|
"assert-plus": "^1.0.0",
|
||||||
"jsprim": "1.4.1",
|
"jsprim": "^1.2.2",
|
||||||
"sshpk": "1.14.1"
|
"sshpk": "^1.7.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"humanize-ms": {
|
"humanize-ms": {
|
||||||
@ -528,7 +528,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
|
||||||
"integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
|
"integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"ms": "2.0.0"
|
"ms": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"iconv-lite": {
|
"iconv-lite": {
|
||||||
@ -643,7 +643,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
|
||||||
"integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
|
"integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"mime-db": "1.33.0"
|
"mime-db": "~1.33.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ms": {
|
"ms": {
|
||||||
@ -679,7 +679,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
|
||||||
"integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
|
"integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"better-assert": "1.0.2"
|
"better-assert": "~1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"parseuri": {
|
"parseuri": {
|
||||||
@ -687,7 +687,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
|
||||||
"integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
|
"integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"better-assert": "1.0.2"
|
"better-assert": "~1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"parseurl": {
|
"parseurl": {
|
||||||
@ -710,7 +710,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz",
|
||||||
"integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==",
|
"integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"forwarded": "0.1.2",
|
"forwarded": "~0.1.2",
|
||||||
"ipaddr.js": "1.6.0"
|
"ipaddr.js": "1.6.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -753,7 +753,7 @@
|
|||||||
"depd": "1.1.1",
|
"depd": "1.1.1",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
"setprototypeof": "1.0.3",
|
"setprototypeof": "1.0.3",
|
||||||
"statuses": "1.4.0"
|
"statuses": ">= 1.3.1 < 2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"setprototypeof": {
|
"setprototypeof": {
|
||||||
@ -768,26 +768,26 @@
|
|||||||
"resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
|
"resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
|
||||||
"integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
|
"integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"aws-sign2": "0.7.0",
|
"aws-sign2": "~0.7.0",
|
||||||
"aws4": "1.7.0",
|
"aws4": "^1.6.0",
|
||||||
"caseless": "0.12.0",
|
"caseless": "~0.12.0",
|
||||||
"combined-stream": "1.0.6",
|
"combined-stream": "~1.0.5",
|
||||||
"extend": "3.0.1",
|
"extend": "~3.0.1",
|
||||||
"forever-agent": "0.6.1",
|
"forever-agent": "~0.6.1",
|
||||||
"form-data": "2.3.2",
|
"form-data": "~2.3.1",
|
||||||
"har-validator": "5.0.3",
|
"har-validator": "~5.0.3",
|
||||||
"http-signature": "1.2.0",
|
"http-signature": "~1.2.0",
|
||||||
"is-typedarray": "1.0.0",
|
"is-typedarray": "~1.0.0",
|
||||||
"isstream": "0.1.2",
|
"isstream": "~0.1.2",
|
||||||
"json-stringify-safe": "5.0.1",
|
"json-stringify-safe": "~5.0.1",
|
||||||
"mime-types": "2.1.18",
|
"mime-types": "~2.1.17",
|
||||||
"oauth-sign": "0.8.2",
|
"oauth-sign": "~0.8.2",
|
||||||
"performance-now": "2.1.0",
|
"performance-now": "^2.1.0",
|
||||||
"qs": "6.5.1",
|
"qs": "~6.5.1",
|
||||||
"safe-buffer": "5.1.1",
|
"safe-buffer": "^5.1.1",
|
||||||
"tough-cookie": "2.3.4",
|
"tough-cookie": "~2.3.3",
|
||||||
"tunnel-agent": "0.6.0",
|
"tunnel-agent": "^0.6.0",
|
||||||
"uuid": "3.2.1"
|
"uuid": "^3.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
@ -801,18 +801,18 @@
|
|||||||
"integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
|
"integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
"depd": "1.1.2",
|
"depd": "~1.1.2",
|
||||||
"destroy": "1.0.4",
|
"destroy": "~1.0.4",
|
||||||
"encodeurl": "1.0.2",
|
"encodeurl": "~1.0.2",
|
||||||
"escape-html": "1.0.3",
|
"escape-html": "~1.0.3",
|
||||||
"etag": "1.8.1",
|
"etag": "~1.8.1",
|
||||||
"fresh": "0.5.2",
|
"fresh": "0.5.2",
|
||||||
"http-errors": "1.6.3",
|
"http-errors": "~1.6.2",
|
||||||
"mime": "1.4.1",
|
"mime": "1.4.1",
|
||||||
"ms": "2.0.0",
|
"ms": "2.0.0",
|
||||||
"on-finished": "2.3.0",
|
"on-finished": "~2.3.0",
|
||||||
"range-parser": "1.2.0",
|
"range-parser": "~1.2.0",
|
||||||
"statuses": "1.4.0"
|
"statuses": "~1.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"serve-static": {
|
"serve-static": {
|
||||||
@ -820,9 +820,9 @@
|
|||||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
|
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
|
||||||
"integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
|
"integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"encodeurl": "1.0.2",
|
"encodeurl": "~1.0.2",
|
||||||
"escape-html": "1.0.3",
|
"escape-html": "~1.0.3",
|
||||||
"parseurl": "1.3.2",
|
"parseurl": "~1.3.2",
|
||||||
"send": "0.16.2"
|
"send": "0.16.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -836,12 +836,12 @@
|
|||||||
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
|
||||||
"integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==",
|
"integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "3.1.0",
|
"debug": "~3.1.0",
|
||||||
"engine.io": "3.2.0",
|
"engine.io": "~3.2.0",
|
||||||
"has-binary2": "1.0.3",
|
"has-binary2": "~1.0.2",
|
||||||
"socket.io-adapter": "1.1.1",
|
"socket.io-adapter": "~1.1.0",
|
||||||
"socket.io-client": "2.1.1",
|
"socket.io-client": "2.1.1",
|
||||||
"socket.io-parser": "3.2.0"
|
"socket.io-parser": "~3.2.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"debug": {
|
"debug": {
|
||||||
@ -868,15 +868,15 @@
|
|||||||
"base64-arraybuffer": "0.1.5",
|
"base64-arraybuffer": "0.1.5",
|
||||||
"component-bind": "1.0.0",
|
"component-bind": "1.0.0",
|
||||||
"component-emitter": "1.2.1",
|
"component-emitter": "1.2.1",
|
||||||
"debug": "3.1.0",
|
"debug": "~3.1.0",
|
||||||
"engine.io-client": "3.2.1",
|
"engine.io-client": "~3.2.0",
|
||||||
"has-binary2": "1.0.3",
|
"has-binary2": "~1.0.2",
|
||||||
"has-cors": "1.1.0",
|
"has-cors": "1.1.0",
|
||||||
"indexof": "0.0.1",
|
"indexof": "0.0.1",
|
||||||
"object-component": "0.0.3",
|
"object-component": "0.0.3",
|
||||||
"parseqs": "0.0.5",
|
"parseqs": "0.0.5",
|
||||||
"parseuri": "0.0.5",
|
"parseuri": "0.0.5",
|
||||||
"socket.io-parser": "3.2.0",
|
"socket.io-parser": "~3.2.0",
|
||||||
"to-array": "0.1.4"
|
"to-array": "0.1.4"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -896,7 +896,7 @@
|
|||||||
"integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==",
|
"integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"component-emitter": "1.2.1",
|
"component-emitter": "1.2.1",
|
||||||
"debug": "3.1.0",
|
"debug": "~3.1.0",
|
||||||
"isarray": "2.0.1"
|
"isarray": "2.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -915,14 +915,14 @@
|
|||||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz",
|
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz",
|
||||||
"integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=",
|
"integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"asn1": "0.2.3",
|
"asn1": "~0.2.3",
|
||||||
"assert-plus": "1.0.0",
|
"assert-plus": "^1.0.0",
|
||||||
"bcrypt-pbkdf": "1.0.1",
|
"bcrypt-pbkdf": "^1.0.0",
|
||||||
"dashdash": "1.14.1",
|
"dashdash": "^1.12.0",
|
||||||
"ecc-jsbn": "0.1.1",
|
"ecc-jsbn": "~0.1.1",
|
||||||
"getpass": "0.1.7",
|
"getpass": "^0.1.1",
|
||||||
"jsbn": "0.1.1",
|
"jsbn": "~0.1.0",
|
||||||
"tweetnacl": "0.14.5"
|
"tweetnacl": "~0.14.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"statuses": {
|
"statuses": {
|
||||||
@ -935,7 +935,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz",
|
||||||
"integrity": "sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8=",
|
"integrity": "sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"emitter-component": "1.1.1"
|
"emitter-component": "^1.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"to-array": {
|
"to-array": {
|
||||||
@ -948,7 +948,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
|
||||||
"integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
|
"integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"punycode": "1.4.1"
|
"punycode": "^1.4.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tunnel-agent": {
|
"tunnel-agent": {
|
||||||
@ -956,7 +956,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||||
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "5.1.1"
|
"safe-buffer": "^5.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tweetnacl": {
|
"tweetnacl": {
|
||||||
@ -971,7 +971,7 @@
|
|||||||
"integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
|
"integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"media-typer": "0.3.0",
|
"media-typer": "0.3.0",
|
||||||
"mime-types": "2.1.18"
|
"mime-types": "~2.1.18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ultron": {
|
"ultron": {
|
||||||
@ -1004,9 +1004,9 @@
|
|||||||
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
||||||
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"assert-plus": "1.0.0",
|
"assert-plus": "^1.0.0",
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"extsprintf": "1.3.0"
|
"extsprintf": "^1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"which": {
|
"which": {
|
||||||
@ -1014,7 +1014,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||||
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"isexe": "2.0.0"
|
"isexe": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ws": {
|
"ws": {
|
||||||
@ -1022,9 +1022,9 @@
|
|||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
|
||||||
"integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
|
"integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"async-limiter": "1.0.0",
|
"async-limiter": "~1.0.0",
|
||||||
"safe-buffer": "5.1.1",
|
"safe-buffer": "~5.1.0",
|
||||||
"ultron": "1.1.1"
|
"ultron": "~1.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"xmlhttprequest-ssl": {
|
"xmlhttprequest-ssl": {
|
||||||
|
160
server-test.js
Executable file
160
server-test.js
Executable file
@ -0,0 +1,160 @@
|
|||||||
|
const path = require('path');
|
||||||
|
const url = require('url');
|
||||||
|
const express = require('express');
|
||||||
|
const fs = require('fs');
|
||||||
|
const http = require('http');
|
||||||
|
const io = require('socket.io');
|
||||||
|
const app = express();
|
||||||
|
const agent = require('agentkeepalive');
|
||||||
|
const request = require('request');
|
||||||
|
|
||||||
|
const port = 8443;
|
||||||
|
const server = http.createServer(app).listen(port, function() {
|
||||||
|
console.log('Open http://localhost:' + port + '/ with a browser');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// TEST PROMISE
|
||||||
|
const readFile = (path, opts = 'utf8') =>
|
||||||
|
new Promise((res, rej) => {
|
||||||
|
fs.readFile(path, opts, (err, data) => {
|
||||||
|
if (err) rej(err)
|
||||||
|
else res(data)
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// CORS
|
||||||
|
app.use((req, res, next) => {
|
||||||
|
res.setHeader('Access-Control-Allow-Origin', '*');
|
||||||
|
next();
|
||||||
|
});
|
||||||
|
|
||||||
|
app.use(express.static(path.join(__dirname, 'static')));
|
||||||
|
|
||||||
|
const socket = io(server);
|
||||||
|
|
||||||
|
let streamerId = '';
|
||||||
|
let streamOnline = false;
|
||||||
|
let req;
|
||||||
|
|
||||||
|
socket.on('connection', async (socket) => {
|
||||||
|
console.log('Connected ' + socket.id);
|
||||||
|
|
||||||
|
socket.on('error', (error) => {
|
||||||
|
console.error('Connection ' + socket.id + ' error', error);
|
||||||
|
});
|
||||||
|
|
||||||
|
socket.on('disconnect',(data) => {
|
||||||
|
if(streamerId == socket.id){
|
||||||
|
console.log('Stream offline! ' + streamerId+ ' closed');
|
||||||
|
} else {
|
||||||
|
console.log('Connection ' + socket.id + ' closed');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
socket.on('stream', (data) => {
|
||||||
|
streamerId = socket.id;
|
||||||
|
streamOnline = true;
|
||||||
|
console.log('Stream active! Session ' + streamerId);
|
||||||
|
});
|
||||||
|
|
||||||
|
const onNewChunk = () => {
|
||||||
|
new Promise((res, rej) => {
|
||||||
|
socket.on('blob', (data) => {
|
||||||
|
if(data){
|
||||||
|
res(data)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
rej(data);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
const initConnection = async () => {
|
||||||
|
const options = {
|
||||||
|
method: 'PUT',
|
||||||
|
forever: true,
|
||||||
|
uri: 'http://ws.kurento.fishrungames.com:8000/'+ 'qq' + '.ogv',
|
||||||
|
headers: {
|
||||||
|
'Connection': 'keep-alive',
|
||||||
|
'content-type': 'video/ogv',
|
||||||
|
'ice-Public': '1',
|
||||||
|
'ice-Name': 'Stream' + 'qq',
|
||||||
|
'ice-Description': 'Steam' + 'qq',
|
||||||
|
'Expect': '100-continue',
|
||||||
|
'Accept': '*/*'
|
||||||
|
},
|
||||||
|
auth: {
|
||||||
|
user: 'source',
|
||||||
|
password: 'frg$$frg'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
fs.createReadStream('new.ogv').pipe(request.put(options, (error, response, body) =>
|
||||||
|
{
|
||||||
|
if(error){
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('end');
|
||||||
|
|
||||||
|
}));
|
||||||
|
console.log('eng');
|
||||||
|
|
||||||
|
/*req = request(options, (err, message, data) => {
|
||||||
|
if(err)
|
||||||
|
console.log(err)
|
||||||
|
|
||||||
|
//console.log(message);
|
||||||
|
//console.log(data);
|
||||||
|
});*/
|
||||||
|
};
|
||||||
|
|
||||||
|
const job = async()=> {
|
||||||
|
console.log('Init');
|
||||||
|
let end = await initConnection();
|
||||||
|
//req.write(await readFile('new.webm'));
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
job();
|
||||||
|
app.get('/video', function(req, res) {
|
||||||
|
const path = 'new.webm';
|
||||||
|
const stat = fs.statSync(path);
|
||||||
|
const fileSize = stat.size;
|
||||||
|
const range = req.headers.range;
|
||||||
|
if (range) {
|
||||||
|
const parts = range.replace(/bytes=/, "").split("-");
|
||||||
|
const start = parseInt(parts[0], 10);
|
||||||
|
const end = parts[1]
|
||||||
|
? parseInt(parts[1], 10)
|
||||||
|
: fileSize-1;
|
||||||
|
const chunksize = (end-start)+1;
|
||||||
|
const file = fs.createReadStream(path, {start, end});
|
||||||
|
const head = {
|
||||||
|
'Content-Range': `bytes ${start}-${end}/${fileSize}`,
|
||||||
|
'Accept-Ranges': 'bytes',
|
||||||
|
'Content-Length': chunksize,
|
||||||
|
'Content-Type': 'video/webm',
|
||||||
|
};
|
||||||
|
res.writeHead(206, head);
|
||||||
|
file.pipe(res);
|
||||||
|
} else {
|
||||||
|
const head = {
|
||||||
|
'Accept-Ranges': 'bytes',
|
||||||
|
'Content-Length': fileSize,
|
||||||
|
'Content-Type': 'video/webm',
|
||||||
|
};
|
||||||
|
res.writeHead(200, head);
|
||||||
|
fs.createReadStream(path).pipe(res)
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
193
server.js
Normal file → Executable file
193
server.js
Normal file → Executable file
@ -1,147 +1,46 @@
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
const url = require('url');
|
const url = require('url');
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const http = require('http');
|
const http = require('http');
|
||||||
const io = require('socket.io');
|
const io = require('socket.io');
|
||||||
const app = express();
|
|
||||||
const agent = require('agentkeepalive');
|
const app = express();
|
||||||
const request = require('request');
|
|
||||||
|
const port = 8443;
|
||||||
const port = 8443;
|
const server = http.createServer(app).listen(port, function() {
|
||||||
const server = http.createServer(app).listen(port, function() {
|
console.log('Open http://localhost:' + port + '/ with a browser');
|
||||||
console.log('Open http://localhost:' + port + '/ with a browser');
|
});
|
||||||
});
|
|
||||||
|
// CORS
|
||||||
|
app.use((req, res, next) => {
|
||||||
// TEST PROMISE
|
res.setHeader('Access-Control-Allow-Origin', '*');
|
||||||
const readFile = (path, opts = 'utf8') =>
|
next();
|
||||||
new Promise((res, rej) => {
|
});
|
||||||
fs.readFile(path, opts, (err, data) => {
|
|
||||||
if (err) rej(err)
|
app.use(express.static(path.join(__dirname, 'static')));
|
||||||
else res(data)
|
|
||||||
})
|
const socket = io(server);
|
||||||
})
|
|
||||||
|
let blobs = [];
|
||||||
|
|
||||||
|
socket.on('connection', (socket) => {
|
||||||
// CORS
|
console.log('Connected ' + socket.id);
|
||||||
app.use((req, res, next) => {
|
|
||||||
res.setHeader('Access-Control-Allow-Origin', '*');
|
socket.on('error', (error) => {
|
||||||
next();
|
console.error('Connection ' + socket.id + ' error', error);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.use(express.static(path.join(__dirname, 'static')));
|
socket.on('disconnect',(socket) => {
|
||||||
|
console.log('Connection ' + socket.id + ' closed');
|
||||||
const socket = io(server);
|
});
|
||||||
|
|
||||||
let streamerId = '';
|
socket.on('blob', (data) =>{
|
||||||
let streamOnline = false;
|
console.log('new blob');
|
||||||
let req;
|
// Send via socket
|
||||||
|
//socket.broadcast.emit('newBlob', data);
|
||||||
socket.on('connection', (socket) => {
|
|
||||||
console.log('Connected ' + socket.id);
|
// Save to file
|
||||||
|
fs.appendFileSync('new.webm', data);
|
||||||
socket.on('error', (error) => {
|
});
|
||||||
console.error('Connection ' + socket.id + ' error', error);
|
});
|
||||||
});
|
|
||||||
|
|
||||||
socket.on('disconnect',(data) => {
|
|
||||||
if(streamerId == socket.id){
|
|
||||||
console.log('Stream offline! ' + streamerId+ ' closed');
|
|
||||||
} else {
|
|
||||||
console.log('Connection ' + socket.id + ' closed');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
socket.on('stream', (data) => {
|
|
||||||
streamerId = socket.id;
|
|
||||||
streamOnline = true;
|
|
||||||
console.log('Stream active! Session ' + streamerId);
|
|
||||||
initConnection();
|
|
||||||
});
|
|
||||||
|
|
||||||
const onNewChunk = () => {
|
|
||||||
new Promise((res, rej) => {
|
|
||||||
socket.on('blob', (data) => {
|
|
||||||
if(data){
|
|
||||||
res(data)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
rej(data);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
)}
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
while(true){
|
|
||||||
req.write(await readFile('new.webm'));
|
|
||||||
}
|
|
||||||
} catch(ex){
|
|
||||||
req.end();
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
const initConnection = async () => {
|
|
||||||
const options = {
|
|
||||||
method: 'PUT',
|
|
||||||
forever: true,
|
|
||||||
uri: 'http://ws.kurento.fishrungames.com:8000/'+ streamerId + '.webm',
|
|
||||||
headers: {
|
|
||||||
'Connection': 'keep-alive',
|
|
||||||
'content-type': 'video/webm',
|
|
||||||
'ice-Public': '1',
|
|
||||||
'ice-Name': 'Stream' + streamerId,
|
|
||||||
'ice-Description': 'Steam' + streamerId
|
|
||||||
},
|
|
||||||
auth: {
|
|
||||||
user: 'source',
|
|
||||||
password: 'frg$$frg'
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
req = request(options, (err, message, data) => {
|
|
||||||
if(err)
|
|
||||||
console.log(err)
|
|
||||||
|
|
||||||
//console.log(message);
|
|
||||||
//console.log(data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
app.get('/video', function(req, res) {
|
|
||||||
const path = 'new.webm'
|
|
||||||
const stat = fs.statSync(path)
|
|
||||||
const fileSize = stat.size;
|
|
||||||
const range = req.headers.range;
|
|
||||||
if (range) {
|
|
||||||
const parts = range.replace(/bytes=/, "").split("-");
|
|
||||||
const start = parseInt(parts[0], 10);
|
|
||||||
const end = parts[1]
|
|
||||||
? parseInt(parts[1], 10)
|
|
||||||
: fileSize-1
|
|
||||||
const chunksize = (end-start)+1;
|
|
||||||
const file = fs.createReadStream(path, {start, end});
|
|
||||||
const head = {
|
|
||||||
'Content-Range': `bytes ${start}-${end}/${fileSize}`,
|
|
||||||
'Accept-Ranges': 'bytes',
|
|
||||||
'Content-Length': chunksize,
|
|
||||||
'Content-Type': 'video/webm',
|
|
||||||
}
|
|
||||||
res.writeHead(206, head);
|
|
||||||
file.pipe(res);
|
|
||||||
} else {
|
|
||||||
const head = {
|
|
||||||
'Accept-Ranges': 'bytes',
|
|
||||||
'Content-Length': fileSize,
|
|
||||||
'Content-Type': 'video/webm',
|
|
||||||
}
|
|
||||||
res.writeHead(200, head)
|
|
||||||
fs.createReadStream(path).pipe(res)
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
|
||||||
|
Loading…
Reference in New Issue
Block a user