我使用websocket在rails中创建web应用程序。我在routes.rb
中创建了以下内容
get '/:username' => 'users#profile', as:"profile"
在此之后,我在Gemfile中添加了以下内容
gem 'websocket-rails'
然后我在application.js
中添加以下内容var dispatcher = new WebSocketRails('localhost:3000/websocket');
channel = dispatcher.subscribe('articles');
channel.bind('new', function(article) {
console.log('a new article about '+article.id+' arrived!');
})
问题是
localhost:3000 / websocket =====>运行profile_path(获取'/:用户名'=>'用户#个人资料',如:“个人资料”)
如何解决我的websocket问题而不删除{ get '/:username' => 'users#profile', as:"profile" }
..?
我是使用网络套接字开发rails的新用户。
答案 0 :(得分:1)
我使用路由约束修复了这个问题:
get '/:hash', to: 'conversations#show', constraints: {hash: /((?!websocket).)*/}
除非:hash
不包含字符串' websocket'
我确定那里有更好的正则表达式,如果我的哈希随机包含字符串" websocket"它会失败。
但是,这解决了我在开发中遇到的问题。