我希望在phonegap应用中提供即时消息服务。我正在考虑使用网络套接字。我在websocket.org上查看并在浏览器中测试了他们的示例代码。
<!DOCTYPE html>
<meta charset="utf-8" />
<title>WebSocket Test</title>
<script language="javascript" type="text/javascript">
var wsUri = "ws://echo.websocket.org/";
var output;
function init()
{
output = document.getElementById("output");
testWebSocket();
}
function testWebSocket()
{
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) { onOpen(evt) };
websocket.onclose = function(evt) { onClose(evt) };
websocket.onmessage = function(evt) { onMessage(evt) };
websocket.onerror = function(evt) { onError(evt) };
}
function onOpen(evt)
{
writeToScreen("CONNECTED");
doSend("WebSocket rocks");
}
function onClose(evt)
{
writeToScreen("DISCONNECTED");
}
function onMessage(evt)
{
writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data+'</span>');
websocket.close();
}
function onError(evt)
{
writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
}
function doSend(message)
{
writeToScreen("SENT: " + message);
websocket.send(message);
}
function writeToScreen(message)
{
var pre = document.createElement("p");
pre.style.wordWrap = "break-word";
pre.innerHTML = message;
output.appendChild(pre);
}
window.addEventListener("load", init, false);
</script>
<h2>WebSocket Test</h2>
<div id="output"></div>
现在我想知道我什么时候自己实现,我应该使用什么?我有自己的域名和hostgator托管我问他们我可以在我的域上设置websocket但他们说这是不可能的,因为它是共享主机。
我也在调查kaazing。
kaazing websocket-gateway editions 然而,支持告诉我,对于聊天应用程序,我需要企业版,因为它有JMS。企业版似乎非常昂贵,这只是一个个人项目开始,所以我买不起。
对于为我的目的连接到网络套接字的最佳和最便宜的方式,您有什么建议吗?
答案 0 :(得分:1)
要让用户访问您的服务,您需要一台具有公共IP地址的计算机,您可以在其中安装KWG。 我所知道的最便宜的是基于云的Linux机器,称为虚拟专用服务器。
安装KWG后,您的客户端应用程序可以使用如下URI: WS://your.ip.address:someport / some.service.path 例如 : WS://193.20.23.45:8000 / JMS
配置的URI在网关启动时显示为输出。
对于简单的聊天项目,您可以使用免费的KWG社区版在后端创建自己的消息路由逻辑。
但是,您将无法使用Enterprise Edition中提供的Deluxe功能,例如: - 负载平衡和群集以实现高可用性 - 全球24×7企业支持 - 企业盾牌 - JMS支持 - 保证交货 - 自动重新连接 还有更多。
只要您的项目未在生产中使用,您仍然可以使用企业版的Gateway,作为此类项目足够的100连接限制。