我使用websocket在rails中创建web应用程序。我在routes.rb
中创建了add在
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 =====> run profile_path (get '/:username' => 'users#profile', as:"profile")
如何解决我的websocket问题没有删除{ get '/:username' => 'users#profile', as:"profile" }
..?
我是使用web套接字开发rails的新用户。
我使用路由约束修复了这个问题:
get '/:hash', to: 'conversations#show', constraints: {hash: /((?!websocket).)*/}
路由将无法工作,除非:hash
不包含字符串'websocket'
我相信有一个更好的正则表达式,如果我的哈希曾经随机包含字符串"websocket"它会失败。
但是,这为我解决了你在开发中的问题。