这里我的代码(websocket使用rachet和wamp服务器!
public function onClose(ConnectionInterface $conn) {
$conn->send("Close client");
}我将使用$conn-> send ()为所有客户端发送消息,但我不知道如何在客户机上使用autobahnJS获得此消息?
更新我找到了解决这个问题的方法!
1)在autobahnJS中启用调试模式
ab.debug( true, true );2)使用conn._websocket.onmessage从服务器获取每个消息响应。
conn._websocket.onmessage = function (e){
data = JSON.parse(e.data);
console.log(data[1]);
if(data.cat=='serverEvents'){
switch(data.action) {
case 'updateServerinfo':
jQuery.updateServerinfo(data.actionData);
break;
}
}
};谢谢大家。
发布于 2013-05-21 14:06:39
autobahnJS有自己的方法来处理向服务器发出的客户端请求。您正在尝试从服务器(“关闭所有客户端”请求)向所有客户端发送请求。最好的方法是让一个线程使用JS的setInterval()函数每隔X秒轮询服务器上的事件。例如:
setInterval(checkForUpdate,60×1000);
在checkForUpdate()中:
function checkForContentUpdate(timetableId) {
var serviceUrl = 'http://yourscripttocheckhere';
var xhr = $.ajax({url: serviceUrl, cache: false, success: function(content) {
// Check server reply and act accordingly
}});
}发布于 2013-05-21 21:05:55
使用AutobahnJS,您有两种与服务器端交互的方法: RPC和PubSub。如果您想从服务器向所有客户端发送消息,只需在所有客户端中订阅某个主题X并从服务器发布到X。
披露:我是“Autobahn”的原作者,并为Tavendo工作。
https://stackoverflow.com/questions/16671738
复制相似问题