ブラウザの WebSocket を、Titanium ベースの iOS アプリでリッスンしている Socket サーバーに接続しようとしています。
デバイスとブラウザ マシンは同じワイヤレス ルーター上にありますが、取得できたのは
[16:01:09.282] Firefox は、ws://192.168.0.190:8080/ でサーバーへの接続を確立できません。
これはプロトコル "ws://" と関係がありますか? Titanium Socket リスナーは、どのようにしてそのプロトコルを期待していることを知るのでしょうか?
これは私のチタンソケットコードです:
var hostname = Ti.Platform.address;
//Create a socket and listen for incoming connections
var listenSocket = Ti.Network.Socket.createTCP({
host : hostname,
port : 8080,
accepted : function(e) {
// This where you would usually store the newly-connected socket, e.inbound
// so it can be used for read / write operations elsewhere in the app.
// In this case, we simply send a message then close the socket.
Ti.API.info("Listening socket <" + e.socket + "> accepted incoming connection <" + JSON.stringify(e.inbound) + ">");
e.inbound.write(Ti.createBuffer({
value : 'Hi from iOS.\r\n'
}));
// e.inbound.close();
// close the accepted socket
},
error : function(e) {
Ti.API.error("Socket <" + e.socket + "> encountered error when listening");
Ti.API.error(" error code <" + e.errorCode + ">");
Ti.API.error(" error description <" + e.error + ">");
}
});
// Starts the socket listening for connections, does not accept them
listenSocket.listen();
Ti.API.info("Listening now...");
// Tells socket to accept the next inbound connection. listenSocket.accepted gets
// called when a connection is accepted via accept()
Ti.API.info("Calling accept.");
listenSocket.accept({
timeout : 10000
});
そして、ブラウザのコードは次のとおりです。
function sensorClient(host, port) {
if ("WebSocket" in window) {
alert("WebSocket is supported by your Browser!");
// Let us open a web socket
var ws = new WebSocket("ws://" + host + ":" + port);
ws.onopen = function () {
// Web Socket is connected, send data using send()
ws.send("hi from the browser");
};
ws.onmessage = function (evt) {
var received_msg = evt.data;
alert("Message received..." + received_msg);
};
ws.onclose = function () {
// websocket is closed.
alert("Connection is closed...");
};
}
else {
// The browser doesn't support WebSocket
alert("WebSocket NOT supported by your Browser!");
}
}