这简直太奇怪了.
我安装了Devise,运行Rails 3 RC .我已经定义了一个自定义策略来尝试使用Kerberos进行身份验证.
module Devise
module Strategies
class Kerb < Devise::Strategies::Base
def valid?
params[:username] || params[:password]
end
def authenticate!
# cheap debugging
puts "PARAMS: #{params}"
if check_kerb_auth(params[:username], params[:password])
# create user account if none exists
u = User.find(:first, :conditions => { :username => params[:username] }) || User.create({ :username => login })
success!(u)
else
fail!("Could not log in")
end
end
def check_kerb_auth(username, password)
require 'krb5_auth'
include Krb5Auth
return false if username.blank? or password.blank?
begin
kerberos = Krb5.new …Run Code Online (Sandbox Code Playgroud) 所以我看到这个伟大的博客文章,用Node.js的进行实验.我决定尝试使用作者的要点自己设置它.它没用.
进一步调试显示websocket连接正常,但是一旦调用'send'就关闭.这是wireshark跟踪(原谅奇怪的间距):
GET /test HTTP/1.1
Host: 127.0.0.1:8000
Sec-WebSocket-Key2: 3 j 92 9 62" 7 0 8 8
Upgrade: WebSocket
Connection: Upgrade
Origin: http://127.0.0.1:3000
Sec-WebSocket-Key1: 96'5% S72.93?06
......(bHTTP/1.1 101 WebSocket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Origin: http://127.0.0.1:3000
Sec-WebSocket-Location: ws://127.0.0.1:8000/test
.4.R....mh.....{.{"action":"move","x":450,"y":22,"w":1146,"h":551}.
Run Code Online (Sandbox Code Playgroud)
我在Chrome和Firefox 4.0测试版中都尝试过这种方法.它们都表现出相同的行为.如果我去原始博客网站,它工作正常.
另一件事.如果我在FF或Chrome中进入JS控制台,我会执行以下操作:
ws = new WebSocket('ws://localhost:8000/test')
ws.send("foo")
Run Code Online (Sandbox Code Playgroud)
它立即断开连接并且不发送消息.服务器显示连接和握手,但从不接收消息.
我在这里发现了几个类似的问题,但要么在没有发布修复的情况下解决,要么在这种情况下似乎不适用.我可以发布gist中的代码,如果它更容易.
我有以下函数给我“声明变量但未使用”错误:
type Comparison struct {
Left []byte
Right []byte
Name string
}
func img(w http.ResponseWriter, r *http.Request, c appengine.Context, u *user.User) {
key := datastore.NewKey("Comparison", r.FormValue("id"), 0, nil)
side := r.FormValue("side")
comparison := new(Comparison)
err := datastore.Get(c, key, comparison)
check(err)
if( side == "left"){
m, _, err := image.Decode(bytes.NewBuffer(comparison.Left))
} else {
m, _, err := image.Decode(bytes.NewBuffer(comparison.Right))
}
check(err)
w.Header().Set("Content-type", "image/jpeg")
jpeg.Encode(w, m, nil)
}
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误:
dpcompare.go:171: m declared and not used
dpcompare.go:171: err declared and not used
dpcompare.go:173: m …Run Code Online (Sandbox Code Playgroud)