red5のWebSocket用プラグインつくりました。1

1 > 2 > 3 > 動作例

red5のWebSocket用のプラグイン(簡単に)つくってみました。
ソースコードはgithubにおいてあります。
https://github.com/taktod/webSocketForRed5
たぶんここで大丈夫なはず。

manifest入りで適当にコンパイルしてjarファイルを作成
それをred5-home/plugins/に設置する。
アプリケーションのred5-web.xmlに以下を記述する。

全部さらすと以下のようになります。
<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 <beans>
   <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
     <property name="location" value="/WEB-INF/red5-web.properties" />
   </bean>
   <bean id="web.context" class="org.red5.server.Context" autowire="byType" />
   <bean id="web.scope" class="org.red5.server.WebScope" init-method="register">
     <property name="server" ref="red5.server" />
     <property name="parent" ref="global.scope" />
     <property name="context" ref="web.context" />
     <property name="handler" ref="web.handler" />
     <property name="contextPath" value="${webapp.contextPath}" />
     <property name="virtualHosts" value="${webapp.virtualHosts}" />
   </bean>
 
   <bean id="webSocketTransport" class="com.ttProject.red5.server.plugin.websocket.WebSocketTransport" init-method="start">
     <property name="port" value="8080"/>
   </bean>
 
   <bean id="web.handler" class="jp.co.ttProject.Application" singleton="true">
     <property name="plugins">
       <list>
         <bean class="org.red5.server.plugin.PluginDescriptor">
           <property name="pluginName" value="WebSocketPlugin"/>
           <property name="pluginType" value="com.ttProject.red5.server.plugin.websocket.WebSocketPlugin"/>
           <property name="method" value="doStart"/>
         </bean>
       </list>
     </property>
   </bean>
</beans>
 
追加したのは、webSocketTransportのbeanとpluginsというpropertyをApplicationAdapterに設定しました。
作成したプラグインのデフォルトポートは80としておきましたが、ほかのアプリとポートがかぶるので一応8080にしました。
これだけでws://(serverIpアドレス):8080/アプリ名/でアクセスし接続できるはずです。
僕の環境では、ws://localhost:8080/ttProject/
でアクセスができ、HandShakeが成立します。

接続を実施するとコンソール上には、以下の出力がでます。
GET /ttProject/ HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: localhost:8080
Origin: null
Sec-WebSocket-Key1: 41v\2 = 6D 1521U0 8
Sec-WebSocket-Key2: 4/4_q? 35.21126M
HandShake complete
 

1 > 2 > 3 > 動作例

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年02月13日 21:47
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。