散景服务器拒绝连接,因为主机不在白名单中

时间:2018-01-31 02:56:36

标签: windows server bokeh

我正在尝试在本地计算机上运行一个简单的散景服务器脚本:

#app.py
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
from random import randrange
#create figure
f=figure(x_range=(0,11),y_range=(0,11))

#create columndatasource
source=ColumnDataSource(data=dict(x=[],y=[]))

#create glyphs
f.circle(x='x',y='y',size=8,fill_color='olive',line_color='yellow',source=source)

#create periodic function
def update():
    new_data=dict(x=[randrange(1,10)],y=[randrange(1,10)])
    source.stream(new_data,rollover=15)
    print(source.data)

#add figure to curdoc and configure callback
curdoc().add_root(f)
curdoc().add_periodic_callback(update,1000)`

在命令行上我尝试了各种组合:

bokeh serve app.py bokeh serve app.py --port 5100 bokeh serve app.py --host * bokeh serve app.py --allow-websocket-origin=127.0.0.1:80

他们都返回一条消息,说主机被拒绝,因为它不在白名单上。我正在运行Windows。出了什么问题?

非常有趣,我实际上是在午餐前让它工作。在用食物奖励自己后,它停止了工作,从那以后我就无法得到它。我认为使用--port--allow-websocket

的工作组合

2 个答案:

答案 0 :(得分:0)

答案是版本控制。 Tornado 4.4.2工作但4.5.3没有

答案 1 :(得分:0)

首先,如果你只是运行

bokeh serve --show app.py 

然后Bokeh会自动将浏览器窗口打开到正确的URL。 deafult URL将是

http://localhost:5006/app

请注意localhost而非127.0.0.1

其他几点说明:

    只有在将Bokeh应用程序嵌入到具有自己地址的不同的单独网站中时,才需要
  • --allow-websocket-origin。它不需要只在本地查看。

  • 弃用并删除了(令人困惑的)--host参数(可能你有一个旧版本?),但也不需要本地查看

  • --address告诉Bokeh服务器要监听哪些网络地址,而本地通常不需要这些地址。

  • --port告诉Bokeh服务器要监听哪个网络端口而不是默认端口5006.例如。

    bokeh serve --port 8080 --show app.py 
    

    会在此处显示应用:

    http://localhost:8080/app
    

如果这没有帮助,则需要更多信息。具体来说,您没有提供的完全错误消息,或者您实际尝试导航到的URL的一些指示(因为这是问题的一半)。