このサイトでは、Macromedia Flash5以上で使用できる
XMLSocketオブジェクト を使用するための、
汎用ソケットサーバを公開しています。
「Socklet」と呼ばれるSocket処理用の小さなアプリケーションを作成し、このサーバソフトに配備することにより、
すぐに、簡単に、XMLSocketを使用したクライアント/サーバコンテンツを作ることが出来ます。
XMLSocket処理用の小さなアプリケーション「Socklet」はJavaクラスとしてだけでなく、ECMAScript(所謂JavaScript)で記述することもできます。
ECMAScriptで記述された
Script Sockletはコンパイルすることなく配備出来ますので、
Javaプログラミング経験の無い方でも、簡単にSockletを作成することが出来ます。
このサーバは100%Pure Javaで構成されていますので、J2SDK1.4以上がインストールされている環境であれば、OSを問いません。
Windows9X / NT / 2000 / XPや、Linux、Unix系OS、試してはいませんがMacOSXでも動くと思います。
また、このソフトウェアはフリーウェアです。個人使用、商用目的利用などに関わらず、自由にご使用ください。
さらに、ソースも公開していますので、改変、再配布も自由に行なっていただいてかまいません。
#改変、再配布の際は、強制ではありませんが、BBSやメールでご一報いただけると嬉しいです。
ライセンスはクリエイティブ・コモンズ・ライセンスとします。
ご意見、ご要望、ご批判等ございましたら、
BBSかメールでご連絡ください。
ドキュメントがなかなか整備できなくて申し訳ないです。>訪れてくれた皆様。
ドキュメントが少ない分、
BBSでの返答はしっかりやりたいと思いますので、
Sockletの作り方に関する疑問や質問などは、どんどん
BBSの方に書き込んでください。
XMLSocket XMLSocket XMLSocket Flash XMLSocket tttttt!!!!!!
どうもGoogleでの表示順序が低いので、XMLSocketを連呼してみました(笑)
【Socklet ソックレット】 くるぶしまでの短い靴下のことだそうです。
〜
CHEST MANIA ファッション用語辞典より〜
文責:
あもい ◆dqVzDvT5pM
GPSSを使用した、アバターチャットゲームシステム
Project街(http://gpss.wda.jp/machi/)へはこちらからどうぞ。

フルーツメール
Enjoy Socklet! - XMLSocket on Flash MX -
2004/10/11
SystemCommandSockletに本当に初歩の初歩のお恥ずかしいバグがありました。
ver1.05.01として修正版をアップしますので、旧版を使用している方はアップグレードしてください。
Enjoy Socklet! - XMLSocket on Flash MX -
2004/06/14
すみません…相変わらずばたばたしていて、なかなかGPSSのほうに手を入れられません。
開発をやめてしまったわけではないことを言い訳するために、現在の構想をメモ代わりに残しておきます。
- ツリー状の「コマンドグループ」と言う考え方を導入。
- Socklet毎に独自実装のSocketProcessorを作成・使用できるようにする。
あ、あとライセンスについてのお問い合わせが結構ありましたので、CreateveCommonsを採用してみました。
要は自由に使って良いよ、ってことなんですが、明文化されていた方が安心できますよね(笑)
ただ、「従うべき条件」を入れないとCreativeCommonsにならないようでしたので、一応クレジット条項が入っています。
まぁそれほどうるさく言うつもりは毛頭ありませんので、ご自由にどうぞ。
※本来は「ソフトウェア」にクリエイティブコモンズを適用するのはお門違いなのですが、
その思想の簡潔さ、分かり易さに惚れましたので、あえてこれを使用します。
ソフトウェアにも適用しようよ、という動きもあるようですし…
Enjoy Socklet! - XMLSocket on Flash MX -
2004/01/31
遅ればせながら、あけましておめでとうございます(遅すぎ)
私は全然何も手をつけていないのですが、(・3・) ◆RTquCoolEEさんに機能追加していただきましたので、
ver1.05としてアップします。いつもありがとうございます。ついでに解説まで書いてもらっちゃって…m(平伏)m
更新内容は以下の通りです。
- NIOの試験実装
J2SE1.4から装備されたノンブロックIOと、util.concurrentを使った実装です。
NIO実装を試してみたい方は、設定ファイル(config.xml)のsystemノードのexecutable属性を編集してください。
デフォルトでは
executable="jp.wda.gpss.system.Main"
(これまでと同じブロッキングIO)になっていますが、これを
executable="jp.wda.gpss.system.MainReactor"
とすると、NIO実装によるサーバとなります。
- アクセス制御機構
接続時にクライアントのチェックを行い、接続許可・接続拒否の処理を可能にするものです。
設定ファイル(config.xml)にて設定を行うことができます。
systemノードの子要素としてsecurityノードを定義します。記述順に条件検査を行います。securityノードが定義されない場合は全ての接続を許可します。
現在サポートする動作は、
- <ACCEPT:IPアドレスを指定して接続許可します。>
-
paramで指定した条件とIPアドレスが一致する場合接続を許可し、一致しなかった場合は次の条件に進みます。
カンマ区切りで複数のIPを指定可能。ワイルドカード文字*で部分一致の指定可能
例:192.168.で始まるIPを許可、127.0.0.1のIPを許可
<security mode="ACCEPT" param="192.168.*, 127.0.0.1" />
- <REJECT:IPアドレスを指定して接続拒否します。>
-
paramで指定した条件とIPアドレスが一致する場合接続を拒否し、一致しなかった場合は次の条件に進みます。
アドレスの指定方法はACCEPTと同様です。
例:全てのIPからの接続を拒否
<security mode="REJECT" param="*" />
- <MAX_CONNECTION:最大接続数を設定します。>
-
paramで指定したコネクション数を超える場合、接続を拒否します。制限値を超えない場合は次の条件に進みます。
例:最大コネクション数を50に制限
<security mode="MAX_CONNECTION" param="50" />
- <MAX_CONNECTION_PER_HOST:IP毎の最大接続数を設定します。>
-
同一ホストからのコネクション数がparamで指定した値を超える場合、接続を拒否します。制限値を超えない場合は次の条件に進みます。
例:同一ホストからの最大コネクション数を1に制限
<security mode="MAX_CONNECTION_PER_HOST" param="1" />
(解説:(・3・) ◆RTquCoolEE)
あと、ダウンロードしたらすぐに試せるように、海戦ゲームと入室管理チャットクライアントを同梱するようにしました。sampleディレクトリの中に入っています。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/12/13
打出脳…本当にごめんなさいm(_ _)m
ver1.04からFESIのサポートを終了したのに伴い、config.xmlを修正していたのを忘れてました。
これまでスクリプトSockletは、拡張子「.rjs」として作成していただいていましたが、
これからは「.js」とさせてください。
既に作ってるスクリプトがあって、ver1.04にアップグレードした場合は、そのスクリプトの拡張子を変更するか、またはconfig.xmlのscriptノードのextention属性を「rjs」に修正してください。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/12/10
ServerVMに対応していない環境のために、startup.bat / startup.shを書き換えてみました。
ただ、バッチファイルやシェルスクリプトって今までまじめに書いたこと無かったので、
見よう見まねです。
ver1.04.02としてリリースしましたので、ご覧くださいませ。
あと、このバージョンからFESIのサポートを終了します。
ScriptSockletについては、Rhinoのみのサポートになりますので、ご了承ください。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/12/03
っつぅか、何でこうも忘れっぽいんでしょうかね。ボケが始まってるんでしょうか。もう、老人並です。私が死んだら開発は引き続き皆さんお願いしますね:-P
さて、何を忘れてたかと言いますと、
SeasarにGPSSが組み込まれました!
seasarsetup20031201.jarから、GPSSも同梱して配布してくださるそうです。
オールインワンばんざーい!!
一気にファイルサイズが大きくなってしまって申し訳無いです…
Enjoy Socklet! - XMLSocket on Flash MX -
2003/12/03
ver1.04にしたら、起動しなくなってしまった…という方。startup.sh / batの一番下の行
java -server %GPSS_OPT% -cp "$GPSS_CP" jp.wda.gpss.system.Main config.xml
を、修正してください。
-serverを消して、
java %GPSS_OPT% -cp "$GPSS_CP" jp.wda.gpss.system.Main config.xml
にすると良いそうです。
何にでも影響されやすいあもいは、
「JavaはCよりも速い!?」を見て速攻付け加えたあげく、
しっかりそのことを忘れてました。すみませんです。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/11/30
あいや、自分の中で勝手に盛り上がって、Seasarのご紹介をするのを忘れてました。
Seasarとは、
こちらで開発の進められている、
国産のアプリケーションサーバです。
ルール指向という独特のアプローチを取った、大変ユニークなサーバソフトウェアです。
また、AMFプロトコルにも対応していまして、FlashRemotingから接続することが出来ます。
つまり、Searsar+GPSSで、RemotingとXMLSocketの両方をサポートしたサーバが出来上がると言うわけなのです。
「うえやんのページ」で、詳しく解説されていますので、
詳細はそちらをご覧ください。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/11/29
Seasar面白いですねぇ。何気にソースが読みやすいのも良いです。大変勉強になります。
そう言ったわけで、ver1.04リリースします。
Seasarサービスに対応してみました。Seasarサービスとして登録する方法は
こちら
ただ、まだLinuxにSeasarをインストールしていないため、そちらでのテストは行ってません。
Linuxで無事登録・起動できた方、ご報告お願いしますm(__)m
また、Seasarのソースを参考にさせていただいて、Sockletの動的入替を出来るようにしてみました。
動的に、とは言いましても、Socketサーバの性質上Sockletの再起動は必要です。
ですが、今までのようにGPSS自体を再起動する必要はなくなりました。
これにより、あるSockletの更新を行う場合に、他のSockletに影響を及ぼすことがなくなりました。
ただ、この変更のため、一部Sockletの仕様が変更されました。
ClassLoaderいじるのって難しいです…
あ、あと今回からダウンロードにはSourceforgeを使用するようにしてみました。
場所自体はずっと前から用意していたんですけどね。なかなか腰が重くて…
で、それに伴い、メーリングリストも用意しました。
http://lists.sourceforge.jp/mailman/listinfo/gp-socketserver-alt
Enjoy Socklet! - XMLSocket on Flash MX -
2003/10/11
なんか、一月ごとにアップデートしているようですが、別に意図してるわけではありませんです。
という訳で、ver1.03リリースします。
更新内容は、以下の通り。
- GeneralSocklet#getOtherSockletのバグ修正
- SocketProcessorインターフェースに
public void setApplication(Socklet socklet)
追加
- CommandSocklet#doCommandで、例外が発生した場合FATALログを取得するように変更
Enjoy Socklet! - XMLSocket on Flash MX -
2003/09/16
と言うわけで、ver1.02リリースします。更新内容は、9/10の通りです。
あと、SockletServiceの方も微修正して1.05になってます。
「街」の方も、今では
ver1.09。大分ソースもぐっちゃぐちゃになってきました(笑)
外部SWF読み込み機能の前に、まずソース整理しなければ。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/09/10
またまた一ヶ月もほっといた訳ですが。
今週末辺り、バージョンアップしますよ。Finderと、ダミークライアントソケットを追加しました。
何故、ダミークライアントソケットが必要なのかといいますと、ゲーム用語はよく知らないのですが、いわゆるアレです。ノンプレイヤーキャラクターですが?そんなのです。それのために必要かな、と。
あと、実戦、ということで、
ここで
こんなの作っています。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/08/14
ほぼ一月ぶりの更新になりました。
今回のアップデートはRhinoJsSockletの機能強化です。同期機能が搭載されました。
7月末には頂いていたのに、アップがこんなに遅くなってしまいまして、すみませんです>(・3・) ◆RTquCoolEEさん
Enjoy Socklet! - XMLSocket on Flash MX -
2003/07/19
APIガイドとチュートリアル更新。
チュートリアルにあった「APIメソッド」はAPIガイドへのリンクとしてしまいました。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/07/10
フラッシュの宝箱さんのリンク集に登録していただきました。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/07/07
正式版をリリースします。
β008.3から、中身に変更はほとんどありません。
(・3・) ◆RTquCoolEEさんに、SimpleXMLCreatorクラスを修正していただいたのみです。
すみませんすみません…
どうしても七夕の日にリリースしたかっただけなんです。しかもそれにも深い意味もなく(笑)
あ、BBSだけは新しくなりました。ジオの掲示板はどうにも使いにくいので。
実はずっとこれの作成を行なっていて、GPSSのほうには手を付けられなかった…なんてことは言いませんが。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/06/26
(・3・) ◆RTquCoolEEさんに、SimpleXMLCreatorクラスを修正していただきましたので、β008.3としてアップします。
今月中には正式版に格上げしたいなぁ。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/06/14
β008をアップしました。更新点は以下の通りです。
- RhinoJsApplication修正 - (・3・) ◆RTquCoolEEさん
- Sockletインターフェースにpublic void log(Object message, Priority priority, Throwable throwable)追加
- SimpleXMLCreatorクラスにparseメソッド追加
- CommandSockletクラス追加
- ColonCommandSockletをCommandSocklet継承クラスに変更
- XMLCommandSockletクラス追加
XMLCommandSockletについては、まだテストしていませんので、正常に動くかどうか分かりません…
追記。
BBSでご指摘のありました部分を修正しまして、β008.1としてアップしました。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/06/10
Flash Site Rankingさん、
[STRAIGHT FLASH!!]さんに登録しました。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/06/08
久しぶりの更新です。β007をアップします。
- AttributeContainerインターフェース追加
- SocketProcessorインターフェースをAttributeContainerインターフェース継承に。
- SockletException、SockletAttributeExceptionクラス追加
- SimpleXMLCreatorクラス追加
- ColonCommandSockletクラス追加
-
GeneralSocklet / SocketProcessorBaseクラスに固有属性操作用の以下のメソッド追加
- void setAttribute(Object key, int value)
- void setAttribute(Object key, long value)
- void setAttribute(Object key, double value)
- void setAttribute(Object key, boolean value)
- int getAttributeInt(Object key)
- long getAttributeLong(Object key)
- double getAttributeDouble(Object key)
- boolean getAttributeBoolean(Object key)
-
Sockletインターフェースに以下のメソッド追加
- sendToAllClients(String message)
- sendToClients(String message, Finder finder)
- sendToClients(String message, String condition)
SockletServiceも、いつの間にか1.04に(笑)
どうやらライセンス的に問題なさそうですので、このバージョンから、Rhinoを同梱することにします。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/05/29
条件指定文字列解釈部の処理を大幅に直しました。かなりすっきりした処理になりました。β006としてアップします。
これでだいぶましになったと思います…
あと、SockletService.asを改造しました。SockletService1.02.asとしてアップしておきます。
このバージョンでは、サーバ名に"auto"を設定すると、自動的にこのswfをダウンロードしたサーバを指定するようになります。(・3・)さんのサンプルファイルを参考にさせていただきました。
また、ポート番号をLoadVarsで取得できるようにしてみました。ポート番号の変更だけで、わざわざswf焼き直し、というのもめんどくさいですから。
Enjoy Socklet! - XMLSocket on Flash MX -
2003/05/27
(・3・)さんからの要望を受けまして、β005アップします。
-
GeneralSocklet / SocketProcessorBaseクラスに固有属性操作用の以下のメソッド追加
- Set getAttributes()
- boolean containsAttributeKey(Object key)
- Set getAttributeKeys()
- Object removeAttribute(Object key)
- SocketProcessorImpl#isSending(boolean sw)のバグ修正
- FinderCreatorクラス新設
-
クライアント絞込条件文字列の指定方法変更
- 条件右辺値は""で括るようにし、条件値の中で&や|を使用可能になりました。
- ダブルコーテーションを条件値に含みたい場合は"""を使用してください。
- また、""で括らずに ==null とすることで、「設定されていない」条件を指定可能になりました。
- 逆に、!=nullとすると、「設定されている」条件になります。
- 空文字の検索は==""でできます。
- RhinoJsSocklet更新 - (・3・) ◆RTquCoolEEさん
また、with2ch様に、サーバをお借りさせていただくことになりました。
試しに、gpssが動いています。
http://gpss.your2ch.net/multisaitama.swf
http://gpss.your2ch.net/CChat.swf
をご覧くださいませ。
そうそう、今回から圧縮形式がzipになります。いまさらAntの使い方を覚えたから、だとかは言いません(w
過去の更新履歴