Javascript 带有棘轮的PHP WebSocket-示例不';行不通
首先是一些背景知识Javascript 带有棘轮的PHP WebSocket-示例不';行不通,javascript,php,linux,websocket,ratchet,Javascript,Php,Linux,Websocket,Ratchet,首先是一些背景知识 我的目标是使用Ratchet WebSocket创建双向客户机-服务器通信 如前所述,我已经安装了ratchet和附带的软件 我已经成功地创建了一个Hello World应用程序,如下所述 现在,我尝试使用教程创建推送功能。我复制了代码,稍微修改了一下(下面的代码注释中提到了修改),安装了ZMQ库(最新版本,添加到php.ini中,显示在php-m-简而言之,它安装正确)。但是WebSocket不起作用 我会给我的测试过程与真正的生活链接到我的域名下面,所以你可以检查它自己
php-m
-简而言之,它安装正确)。但是WebSocket不起作用。我的问题与浏览器无关,与添加修复之前的问题相同
然后,
已建立的连接
将正确显示在控制台中。因此,我认为我们需要对subscribe方法进行故障排除。如果有人能向我解释它是如何工作的,以及“主题”和“数据”到底应该是什么,那将是非常有帮助的。Autobahn文档使用URL作为此方法的参数(请参阅)。您的客户正在kittensCategory
中查找文章,但您正在发送categorymacka
。试试这个:
$entryData = array(
'cat' => "kittensCategory",
'title' => "naslov",
'article' => "tekst",
'when' => time()
);
端口8080上的主机light-speed-games.com未运行是否正确?如果没有,我建议解决这个问题,因为它可能会导致您的问题。谢谢,我会在早上(现在不在家)尝试。这对我来说有点奇怪,我想我不明白。我以为“kittensCategory”只是一个数组项,其中“cat”是键,“kittensCategory”是值。然后它引用
数据。title
-这会像预期的那样打印我们的“naslov”吗?它在将“macka”更改为“kittensCategory”后仍然不起作用。你能给我解释一下整个conn.subscribe
功能吗。我不明白。在这种情况下,主题
和数据
是什么?另外,我用一些新的信息编辑了我的问题,部分基于你指出的内容,部分基于我刚刚做的一些研究。很抱歉反应太晚,我不知怎么错过了你的答案。你是说我应该向我的主机提供商询问这个端口是否不工作?从你的计算机执行telnet,以在端口8080上托管light-speed-games.com。您可能会看到与我相同的结果(连接不会建立)。我不知道原因,也不知道你应该联系你的托管公司来解决这个问题(尽管我想你应该:)。因为连接不会建立在这个“低级”测试上,我确实理解为什么你的javascript也不执行它的逻辑->它没有连接。这是有道理的-我今天晚些时候会尝试,让你知道。很抱歉,奖金到期了,因为我要去过年了,但如果这样做有效的话,我至少可以奖励一半的奖金。你说得对,TCP连接的端口关闭了。我尝试用iptables-I INPUT-p tcp--dport 8080--syn-j ACCEPT
打开它,然后是service iptables save
并重新启动Apache,但它似乎仍然关闭。有什么想法吗?顺便说一句,我在5555端口也有同样的想法。但是,像21和22这样的标准端口运行良好。我想知道,如果解决方案是端口未打开,是否应该将其关闭为不可复制。
<script>
window.define = function(factory) { //my addition
try{ delete window.define; } catch(e){ window.define = void 0; } // IE
window.when = factory();
};
window.define.amd = {};
</script>
<script src="/apps/scripts/when.js"></script>
<script src="http://autobahn.s3.amazonaws.com/js/autobahn.min.js"></script>
<script>
var conn = new ab.Session(
'ws://light-speed-games.com:8080' // The host (our Ratchet WebSocket server) to connect to
, function() { // Once the connection has been established
conn.subscribe('kittensCategory', function(topic, data) {
// This is where you would add the new article to the DOM (beyond the scope of this tutorial)
console.log('New article published to category "' + topic + '" : ' + data.title);
});
}
, function() { // When the connection is closed
console.warn('WebSocket connection closed');
}
, { // Additional parameters, we're ignoring the WAMP sub-protocol for older browsers
'skipSubprotocolCheck': true
}
);
</script>
function() { // Once the connection has been established
console.log('Connection established');
conn.subscribe('kittensCategory', function(topic, data) {
// This is where you would add the new article to the DOM (beyond the scope of this tutorial)
console.log('New article published to category "' + topic + '" : ' + data.title);
});
}
$entryData = array(
'cat' => "kittensCategory",
'title' => "naslov",
'article' => "tekst",
'when' => time()
);