1

我正在使用 nim buildpack 在 heroku 上运行一个简单的 jester 服务器。但是,asyncnet 库有时会拒绝使用 heroku 提供的端口(每次都不同)。如果 nim 不喜欢该端口,会发生以下情况:

Traceback (most recent call last)
macros.nim(293)          blog
jester.nim(326)          serve
asyncdispatch.nim(282)   asyncCheck
asyncdispatch.nim(224)   callback=
asyncdispatch.nim(286)   :anonymous
Error: unhandled exception: value ot of range: 58622 [Exception]

Original stack trace in serve:
Traceback (most recent call last)
macros.nim(293)          blog
jester.nim(326)          serve
asyncdispatch.nim(1212)  serve
asyncdispatch.nim(1199)  cb
asyncnet.nim(433)        bindAddr
asynchttpserver.nim(250) serveIter

Continuing...

(我确定 58622 是 heroku 试图为程序提供数据的端口。)当我使用端口 58622 在本地运行时,服务器工作正常。为什么会这样?

4

1 回答 1

3

您似乎偶然发现了 Nim 的套接字代码中的一个错误。好消息是它已经在Github上的编译器的开发版本中得到修复,在 0.11.2 中它在这里被破坏。我的猜测是,在 Heroku 上,您使用的是最新版本的 Nim 0.11.2,而在您的本地计算机上,您使用的是没有此错误的开发版本。

无论如何,解决方案应该是更新 heroku 使用的 Nim 版本。

于 2015-09-27T12:43:08.863 回答