我正在使用 WebSocketBundle 处理 Symfony2 应用程序。
https://github.com/GeniusesOfSymfony/WebSocketBundle。
捆绑的安装已成功完成。
因此,我使用简单的命令运行websocket服务器(本地端口8080):" php app / console gos:websocket:server"
我的symfony服务器正在运行(本地端口8000)。
我设置了一个简单的客户端javascript,以便在捆绑的github上的官方教程之后使用WebSocketBundle。
当我访问我网站上的某个页面时,我正确连接到websocket服务器 当我想使用允许用户订阅频道的函数subscribe()和publish()时出现问题,当有人在此频道上发布内容时,订阅者会收到该消息。< / p>
在我的情况下,邮件不会被发送或接收,我真的不知道为什么因为没有显示任何重大错误,我试图尽可能准确地遵循这里的官方教程:
https://github.com/GeniusesOfSymfony/WebSocketBundle/blob/master/Resources/docs/TopicSetup.md
但是,不幸的是,我无法成功实现这一目标。这就是我征求你帮助我的原因。
我在最狡猾的代码下面与您分享,以展示设置是如何进行的:
客户端JavaScript:
[/web/js/own_scripts/gws_lobby.js]
var webSocket = WS.connect("ws://127.0.0.1:8080");
webSocket.on("socket/connect", function(session){
//session is an Autobahn JS WAMP session.
console.log("Successfully Connected!"); // I see this message
session.subscribe("dcqtv/lobby/1", function(uri, payload){
console.log("Message reçu : "+payload.msg);
});
session.publish("dcqtv/lobby/1", "testpublish");
});
// I should see "Message reçu : testpublish" in the console but that not happen
主题处理程序服务的部分内容(仅显示教程中给出的差异):
[/src/AppBundle/DcqtvTopic.php]
namespace AppBundle;
class DcqtvTopic implements TopicInterface {
...
public function getName(){
return 'dcqtv.topic';
}
}
使用Symfony注册服务:
[/src/AppBundle/Resources/config/services.yml]
services:
dcqtv.topic:
class: AppBundle\DcqtvTopic
tags:
- { name: gos_web_socket.topic }
链接频道&amp; pubsub路由器的主题(这里有2个文件):
[/src/AppBundle/Resources/config/pubsub/routing.yml]
dcqtv_topic:
channel: dcqtv/lobby/{lobby_id}
handler:
callback: 'dcqtv.topic' #related to the getName() of your topic
requirements:
lobby_id:
pattern: "\d+"
[/应用/配置/ config.yml]
gos_web_socket:
server:
port: 8080 #The port the socket server will listen on
host: 127.0.0.1 #The host ip to bind to
router:
resources:
- @AppBundle/Resources/config/pubsub/routing.yml
这很长,因为我想要明确和清楚,有很多代码,但这是必要的,以便很好地理解整个事情。
随意提问。
感谢您的关注。对不起,如果我的英语不好。
答案 0 :(得分:0)
您好我写这篇文章给你另一种方式来使用websocket和symfony我从来没有使用你的aproche但我使用本教程构建了许多应用程序 如果你发现自己陷入困境,可以使用它her
答案 1 :(得分:0)
喜欢你错过了
{{ ws_client() }}
https://github.com/GeniusesOfSymfony/WebSocketBundle/blob/master/Resources/docs/ClientSetup.md