Biz/Browser V LTS 1.1.0
|
|
|
|||||
|
|
|
|
|
|||
|
|
|
|||||
|
|
||||||
|
|
|
|
|
|||
|
|
WebSocketListener |
|||||
|
|
||||||
WebSocketサーバを作成して、受信待機します。
WebSocketListenerオブジェクトを作成し、Startメソッドを呼び出すと、WebSocketの待ち受け状態となります。
Startメソッドの呼び出しでportが既にコンピュータ上で利用されていた場合、エラーとなり例外が発生しソケットの待ち受けは中止されます。
Startメソッドで待機中のサーバソケットにクライアントソケットから接続が確立した際に、Acceptイベントが発生します。
クライアントから接続されると子オブジェクトとして WebSocket オブジェクトを生成されます。
このWebSocketListenerオブジェクトの配下に生成されたWebSocketオブジェクトを使用して、クライアントからのデータ受信、クライアントへのデータ送信を行います。
デフォルトプロパティはValueです。ValueTypeにはString、Number、Fixed、Date、UStringを指定できます。
WebSocketListenerサンプル
Form WebSocketListener{
X = 0;
Y = 0;
Width = 733;
Height = 569;
string sname;
WebSocketListener sock_listener {
Function OnAccept(e) {
/* e.socketには接続によって生成されたWebSocketオブジェクトへの参照が格納されます。*/
var obj = e.socket;
/* 接続によって生成されたWebSocketオブジェクトのオブジェクト名を取得します。*/
WebSocketListener.sname = obj.name;
}
/* 接続によって生成されたWebSocketオブジェクトは自動的に子オブジェクトとしてWebSocketListnerオブジェクトに接続されます。 */
/* 生成されたWebSocketにデータが着信しReceiveイベントが発生した場合、親オブジェクトであるWebSocketListenerにイベントが伝搬します。 */
/* そのためWebSocketListerオブジェクトにReceiveイベントのイベントハンドラを記述することで、クライアントからの受信処理を実装できます。 */
Function OnReceive(e) {
var data = e.from.Read(256);
//.MessageBox(data);
}
}
Button btnStart {
X = 214;
Y = 86;
Width = 98;
Height = 27;
Title = "Start";
Function OnTouch( e ) {
try {
/* ソケットの受信待機を開始します。 */
if (^.sock_listener.Start(443)) {
//.MessageBox("受信待機を開始します");
} else {
//.MessageBox("Startできませんでした");
}
} catch(e) {
^.sock_listener.Stop();
MessageBox(str(e.Message));
}
}
}
Button btnStop {
X = 314;
Y = 86;
Width = 98;
Height = 27;
Title = "Stop";
Function OnTouch( e ) {
try {
/* ソケットの受信待機を停止します。 */
^.sock_listener.Stop();
} catch(e) {
MessageBox(str(e.Message));
}
}
}
Button btnWrite {
X = 199;
Y = 188;
Width = 117;
Height = 29;
Title = "送信(Write)";
TabIndex = 2;
Function OnTouch( e ) {
try {
/* クライアントからの接続によって生成されたWebSocketオブジェクトをオブジェクト名で検索します。*/
var sock = ^.sock_listener.FindObject(WebSocketListener.sname);
if (sock != null) {
/* 検索されたWebSocketオブジェクトを使用して、クライアントへデータ送信を行います。 */
sock.Write("AAAAAAAAAAA");
}
} catch(e) {
MessageBox(str(e.Message));
}
}
}
}