websocket

Hi Guys,

Currently, I stuck on the issue which the websocket keeps alive around 3 mintue, and then I get this message

“[bokeh] Lost websocket 0 connection, 1006 ()”

“connection.js:95 [bokeh] Websocket connection 0 disconnected, will not attempt to reconnect”

What could I do if I like to keep wbsocket always open? I spend lot of tome on it and still have no any ideas.

Welcome any suggestions

Hi,

I can't reproduce any issue on OSX/Safari, I left a tab open and unused for 10 minutes and it worked fine after I returned to it. As far as I know, 1006 if for when the browser itself abnormally terminates a websocket connection for some reason. What platform/browser are you seeing this on? Can you reproduce this effect with any other browsers? Is there any error output in the server console when the session terminates, if you run the server with --log-level=trace?

Thanks,

Bryan

···

On Aug 1, 2018, at 13:28, peng wang <[email protected]> wrote:

Hi Guys,

Currently, I stuck on the issue which the websocket keeps alive around 3 mintue, and then I get this message

"[bokeh] Lost websocket 0 connection, 1006 ()"
"connection.js:95 [bokeh] Websocket connection 0 disconnected, will not attempt to reconnect"

What could I do if I like to keep wbsocket always open? I spend lot of tome on it and still have no any ideas.

Welcome any suggestions

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2a37f65d-df49-42a6-82ff-1c5296cd8ce2%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Thanks for response,

I run my web application(Flask + Bokeh + IIS + IE ), the info from console is below. I update sourcedata in different threads and CustomJS, some codes are post below.

About very first 3 errors, I assume that errors are generated because I created several figures and ColumnSourceDatas in different threads, and use queues to update its’ sourcedata, but I can not sure. please help me clarify if all figures and ColumnSourceData should be in same *.py.

Sorry for those codes and thanks for your efforts.

code from file01.py

taptool.callback = CustomJS(args=dict(allSource=mainplot_source, \

novosSource=novos_source, \

subplotSource=subplot_source, \

subplotColorsLength=subplot_colors_length, \

novosLength=novos_length, \

subplot=sub_plot \

),\

code = “”"

selection = require(“core/util/selection”)

indices = selection.get_indices(allSource)
if (novosSource.data['type'][i] === 'OffBottom')

                    {

                        if (novosSource.data['status'][i] === null)

                            continue

                        if (novosSource.data['status'][i] === 'Active') 

                        {

                            subplotSource.data['B2SColors'][6] = 'green' 

                            subplotSource.data['Text'][6] = 'Offbottom-Active' 

                        } else if (novosSource.data['status'][i] === 'Completed') 

                        {

                            subplotSource.data['B2SColors'][11] = 'green' 

                            subplotSource.data['Text'][11] = 'Offbottom-Completed' 

                        } else 

                        {

                            if (subplotSource.data['B2SColors'][6] != 'green'){

                                subplotSource.data['B2SColors'][6] = 'yellow'

                                subplotSource.data['Text'][6] = 'Offbottom-Active' 

                            }

                            if (subplotSource.data['B2SColors'][11] != 'green'){

                                subplotSource.data['B2SColors'][11] = 'yellow'

                                subplotSource.data['Text'][11] = 'Offbottom-Completed' 

                            }

                        }

                        subplotSource.change.emit()

                        continue

                    }

``

file02.py

@gen.coroutine

def update_main_plot_source(main_plot, main_plot_dict, depth_list, mainplot_data_all, mainplot_source):

mainplot_source.data[‘HoleDepth’] = update_holeDepth_list(main_plot_dict, mainplot_data_all, depth_list)

mainplot_source.data[‘VBarTop’] = updateSourceData(‘VBarTop’, main_plot_dict, mainplot_source.data)

mainplot_source.data[‘VBarBottom’] = updateSourceData(‘VBarBottom’, main_plot_dict, mainplot_source.data)

mainplot_source.data[‘VBarColors’] = updateSourceData(‘VBarColors’, main_plot_dict, mainplot_source.data)

vBarType_list = updateSourceData(‘VBarType’, main_plot_dict, mainplot_source.data)

mainplot_source.data[‘VBarType’] = vBarType_list

main_plot.x_range.factors =

main_plot.x_range.factors = depth_list

@without_document_lock

def update_main_plot_chart( doc, \

update_main_plot_event, \

mainplot_source, \

main_plot, \

mainplot_data_all, \

checkbox_group_1_selections, \

checkbox_group_2_selections,\

checkbox_group_3_selections, \

all_connection_dict,\

rig, \

job, \

from_comboBx_group):

update_main_plot_event.wait()

main_plot_dict = {}

depth_list =
}

file01.py

update_main_plot_thread = Thread(name=‘update_main_plot_thread’, \

target = lambda q, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12: q.put(all_main_plot.update_main_plot_chart(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)), \

args = (update_main_plot_queue, \

doc, \

update_main_plot_event, \

mainplot_source, \

main_plot, \

mainplot_data_all, \

checkbox_group_1_selections, \

checkbox_group_2_selections,\

checkbox_group_3_selections, \

all_connection_dict,\

rig, \

job, \

from_comboBx_group))

update_main_plot_thread.start()

update_main_plot_event.set()

``

···

On Wednesday, August 1, 2018 at 2:59:25 PM UTC-6, Bryan Van de ven wrote:

Hi,

I can’t reproduce any issue on OSX/Safari, I left a tab open and unused for 10 minutes and it worked fine after I returned to it. As far as I know, 1006 if for when the browser itself abnormally terminates a websocket connection for some reason. What platform/browser are you seeing this on? Can you reproduce this effect with any other browsers? Is there any error output in the server console when the session terminates, if you run the server with --log-level=trace?

Thanks,

Bryan

On Aug 1, 2018, at 13:28, peng wang [email protected] wrote:

Hi Guys,

Currently, I stuck on the issue which the websocket keeps alive around 3 mintue, and then I get this message

“[bokeh] Lost websocket 0 connection, 1006 ()”

“connection.js:95 [bokeh] Websocket connection 0 disconnected, will not attempt to reconnect”

What could I do if I like to keep wbsocket always open? I spend lot of tome on it and still have no any ideas.

Welcome any suggestions


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2a37f65d-df49-42a6-82ff-1c5296cd8ce2%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Hi,

It appears that this network error 12030 is something specific to IE/Edge:

  https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs

We will have to try and investigate. Can you do the following things:

* see if this same problem happens with the simple sliders.py example

  https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py

  If it does NOT happen with sliders.py, please try to provide a complete minimal script that does exhibit the problem. Being able to reproduce this will be crucial to investigating this. There is basically on chance we will be able to solve this without a way to reproduce the problem.

* Make a GitHub issue with all of this information and a link to this thread:

  https://github.com/bokeh/bokeh/issues

Thanks,

Bryan

···

On Aug 1, 2018, at 14:55, peng wang <[email protected]> wrote:

Thanks for response,

I run my web application(Flask + Bokeh + IIS + IE ), the info from console is below. I update sourcedata in different threads and CustomJS, some codes are post below.

About very first 3 errors, I assume that errors are generated because I created several figures and ColumnSourceDatas in different threads, and use queues to update its' sourcedata, but I can not sure. please help me clarify if all figures and ColumnSourceData should be in same *.py.

Sorry for those codes and thanks for your efforts.

### code from file01.py

taptool.callback = CustomJS(args=dict(allSource=mainplot_source, \
                                          novosSource=novos_source, \
                                          subplotSource=subplot_source, \
                                          subplotColorsLength=subplot_colors_length, \
                                          novosLength=novos_length, \
                                          subplot=sub_plot \
                                         ),\
                                code = """
    selection = require("core/util/selection")
    indices = selection.get_indices(allSource)
    if (novosSource.data['type'][i] === 'OffBottom')
                        {
                            if (novosSource.data['status'][i] === null)
                                continue

                            if (novosSource.data['status'][i] === 'Active')
                            {
                                subplotSource.data['B2SColors'][6] = 'green'
                                subplotSource.data['Text'][6] = 'Offbottom-Active'
                            } else if (novosSource.data['status'][i] === 'Completed')
                            {
                                subplotSource.data['B2SColors'][11] = 'green'
                                subplotSource.data['Text'][11] = 'Offbottom-Completed'
                            } else
                            {
                                if (subplotSource.data['B2SColors'][6] != 'green'){
                                    subplotSource.data['B2SColors'][6] = 'yellow'
                                    subplotSource.data['Text'][6] = 'Offbottom-Active'
                                }
                                if (subplotSource.data['B2SColors'][11] != 'green'){
                                    subplotSource.data['B2SColors'][11] = 'yellow'
                                    subplotSource.data['Text'][11] = 'Offbottom-Completed'
                                }
                            }
                            subplotSource.change.emit()
                            continue
                        }

## file02.py ####

@gen.coroutine
def update_main_plot_source(main_plot, main_plot_dict, depth_list, mainplot_data_all, mainplot_source):
    mainplot_source.data['HoleDepth'] = update_holeDepth_list(main_plot_dict, mainplot_data_all, depth_list)
    mainplot_source.data['VBarTop'] = updateSourceData('VBarTop', main_plot_dict, mainplot_source.data)
    mainplot_source.data['VBarBottom'] = updateSourceData('VBarBottom', main_plot_dict, mainplot_source.data)
    mainplot_source.data['VBarColors'] = updateSourceData('VBarColors', main_plot_dict, mainplot_source.data)
    vBarType_list = updateSourceData('VBarType', main_plot_dict, mainplot_source.data)
    mainplot_source.data['VBarType'] = vBarType_list
    main_plot.x_range.factors =
    main_plot.x_range.factors = depth_list

@without_document_lock
def update_main_plot_chart( doc, \
                            update_main_plot_event, \
                            mainplot_source, \
                            main_plot, \
                            mainplot_data_all, \
                            checkbox_group_1_selections, \
                            checkbox_group_2_selections,\
                            checkbox_group_3_selections, \
                            all_connection_dict,\
                            rig, \
                            job, \
                            from_comboBx_group):
    update_main_plot_event.wait()
    
    main_plot_dict = {}
    depth_list =
}

###### file01.py

update_main_plot_thread = Thread(name='update_main_plot_thread', \
                                     target = lambda q, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12: q.put(all_main_plot.update_main_plot_chart(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)), \
                                     args = (update_main_plot_queue, \
                                             doc, \
                                             update_main_plot_event, \
                                             mainplot_source, \
                                             main_plot, \
                                             mainplot_data_all, \
                                             checkbox_group_1_selections, \
                                             checkbox_group_2_selections,\
                                             checkbox_group_3_selections, \
                                             all_connection_dict,\
                                             rig, \
                                             job, \
                                             from_comboBx_group))
    update_main_plot_thread.start()
    update_main_plot_event.set()
    
On Wednesday, August 1, 2018 at 2:59:25 PM UTC-6, Bryan Van de ven wrote:
Hi,

I can't reproduce any issue on OSX/Safari, I left a tab open and unused for 10 minutes and it worked fine after I returned to it. As far as I know, 1006 if for when the browser itself abnormally terminates a websocket connection for some reason. What platform/browser are you seeing this on? Can you reproduce this effect with any other browsers? Is there any error output in the server console when the session terminates, if you run the server with --log-level=trace?

Thanks,

Bryan

> On Aug 1, 2018, at 13:28, peng wang <[email protected]> wrote:
>
> Hi Guys,
>
> Currently, I stuck on the issue which the websocket keeps alive around 3 mintue, and then I get this message
>
> "[bokeh] Lost websocket 0 connection, 1006 ()"
> "connection.js:95 [bokeh] Websocket connection 0 disconnected, will not attempt to reconnect"
>
> What could I do if I like to keep wbsocket always open? I spend lot of tome on it and still have no any ideas.
>
> Welcome any suggestions
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2a37f65d-df49-42a6-82ff-1c5296cd8ce2%40continuum.io.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0fe72aef-653a-4193-b490-7a7cae3562f8%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Additionally:

I believe the first three errors are currently a harmless nuisance, don't worry about them for now (there is an open issue to deal with them).

Also, in the GH issue you make, can you confirm whether this problem happens with other browsers on windows?

Thanks,

Bryan

···

On Aug 1, 2018, at 15:03, Bryan Van de ven <[email protected]> wrote:

Hi,

It appears that this network error 12030 is something specific to IE/Edge:

  https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs

We will have to try and investigate. Can you do the following things:

* see if this same problem happens with the simple sliders.py example

  https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py

If it does NOT happen with sliders.py, please try to provide a complete minimal script that does exhibit the problem. Being able to reproduce this will be crucial to investigating this. There is basically on chance we will be able to solve this without a way to reproduce the problem.

* Make a GitHub issue with all of this information and a link to this thread:

  https://github.com/bokeh/bokeh/issues

Thanks,

Bryan

On Aug 1, 2018, at 14:55, peng wang <[email protected]> wrote:

Thanks for response,

I run my web application(Flask + Bokeh + IIS + IE ), the info from console is below. I update sourcedata in different threads and CustomJS, some codes are post below.

About very first 3 errors, I assume that errors are generated because I created several figures and ColumnSourceDatas in different threads, and use queues to update its' sourcedata, but I can not sure. please help me clarify if all figures and ColumnSourceData should be in same *.py.

Sorry for those codes and thanks for your efforts.

### code from file01.py

taptool.callback = CustomJS(args=dict(allSource=mainplot_source, \
                                         novosSource=novos_source, \
                                         subplotSource=subplot_source, \
                                         subplotColorsLength=subplot_colors_length, \
                                         novosLength=novos_length, \
                                         subplot=sub_plot \
                                        ),\
                               code = """
   selection = require("core/util/selection")
   indices = selection.get_indices(allSource)
   if (novosSource.data['type'][i] === 'OffBottom')
                       {
                           if (novosSource.data['status'][i] === null)
                               continue

                           if (novosSource.data['status'][i] === 'Active')
                           {
                               subplotSource.data['B2SColors'][6] = 'green'
                               subplotSource.data['Text'][6] = 'Offbottom-Active'
                           } else if (novosSource.data['status'][i] === 'Completed')
                           {
                               subplotSource.data['B2SColors'][11] = 'green'
                               subplotSource.data['Text'][11] = 'Offbottom-Completed'
                           } else
                           {
                               if (subplotSource.data['B2SColors'][6] != 'green'){
                                   subplotSource.data['B2SColors'][6] = 'yellow'
                                   subplotSource.data['Text'][6] = 'Offbottom-Active'
                               }
                               if (subplotSource.data['B2SColors'][11] != 'green'){
                                   subplotSource.data['B2SColors'][11] = 'yellow'
                                   subplotSource.data['Text'][11] = 'Offbottom-Completed'
                               }
                           }
                           subplotSource.change.emit()
                           continue
                       }

## file02.py ####

@gen.coroutine
def update_main_plot_source(main_plot, main_plot_dict, depth_list, mainplot_data_all, mainplot_source):
   mainplot_source.data['HoleDepth'] = update_holeDepth_list(main_plot_dict, mainplot_data_all, depth_list)
   mainplot_source.data['VBarTop'] = updateSourceData('VBarTop', main_plot_dict, mainplot_source.data)
   mainplot_source.data['VBarBottom'] = updateSourceData('VBarBottom', main_plot_dict, mainplot_source.data)
   mainplot_source.data['VBarColors'] = updateSourceData('VBarColors', main_plot_dict, mainplot_source.data)
   vBarType_list = updateSourceData('VBarType', main_plot_dict, mainplot_source.data)
   mainplot_source.data['VBarType'] = vBarType_list
   main_plot.x_range.factors =
   main_plot.x_range.factors = depth_list

@without_document_lock
def update_main_plot_chart( doc, \
                           update_main_plot_event, \
                           mainplot_source, \
                           main_plot, \
                           mainplot_data_all, \
                           checkbox_group_1_selections, \
                           checkbox_group_2_selections,\
                           checkbox_group_3_selections, \
                           all_connection_dict,\
                           rig, \
                           job, \
                           from_comboBx_group):
   update_main_plot_event.wait()

   main_plot_dict = {}
   depth_list =
}

###### file01.py

update_main_plot_thread = Thread(name='update_main_plot_thread', \
                                    target = lambda q, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12: q.put(all_main_plot.update_main_plot_chart(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)), \
                                    args = (update_main_plot_queue, \
                                            doc, \
                                            update_main_plot_event, \
                                            mainplot_source, \
                                            main_plot, \
                                            mainplot_data_all, \
                                            checkbox_group_1_selections, \
                                            checkbox_group_2_selections,\
                                            checkbox_group_3_selections, \
                                            all_connection_dict,\
                                            rig, \
                                            job, \
                                            from_comboBx_group))
   update_main_plot_thread.start()
   update_main_plot_event.set()

On Wednesday, August 1, 2018 at 2:59:25 PM UTC-6, Bryan Van de ven wrote:
Hi,

I can't reproduce any issue on OSX/Safari, I left a tab open and unused for 10 minutes and it worked fine after I returned to it. As far as I know, 1006 if for when the browser itself abnormally terminates a websocket connection for some reason. What platform/browser are you seeing this on? Can you reproduce this effect with any other browsers? Is there any error output in the server console when the session terminates, if you run the server with --log-level=trace?

Thanks,

Bryan

On Aug 1, 2018, at 13:28, peng wang <[email protected]> wrote:

Hi Guys,

Currently, I stuck on the issue which the websocket keeps alive around 3 mintue, and then I get this message

"[bokeh] Lost websocket 0 connection, 1006 ()"
"connection.js:95 [bokeh] Websocket connection 0 disconnected, will not attempt to reconnect"

What could I do if I like to keep wbsocket always open? I spend lot of tome on it and still have no any ideas.

Welcome any suggestions

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2a37f65d-df49-42a6-82ff-1c5296cd8ce2%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0fe72aef-653a-4193-b490-7a7cae3562f8%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

I did a test based on your suggestion, environmentis Flask(CherryPy Server, not default flask server ) + Bokeh + IIS(CGI, FastWCGI) + Chrome & IE. I Run slider.py. the issue is still there, please refer to the screenshot below.

Thanks a lot

···

On Wednesday, August 1, 2018 at 4:05:16 PM UTC-6, Bryan Van de ven wrote:

Additionally:

I believe the first three errors are currently a harmless nuisance, don’t worry about them for now (there is an open issue to deal with them).

Also, in the GH issue you make, can you confirm whether this problem happens with other browsers on windows?

Thanks,

Bryan

On Aug 1, 2018, at 15:03, Bryan Van de ven [email protected] wrote:

Hi,

It appears that this network error 12030 is something specific to IE/Edge:

    [https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs](https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs)

We will have to try and investigate. Can you do the following things:

  • see if this same problem happens with the simple sliders.py example

      [https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py](https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py)
    

If it does NOT happen with sliders.py, please try to provide a complete minimal script that does exhibit the problem. Being able to reproduce this will be crucial to investigating this. There is basically on chance we will be able to solve this without a way to reproduce the problem.

  • Make a GitHub issue with all of this information and a link to this thread:
    [https://github.com/bokeh/bokeh/issues](https://github.com/bokeh/bokeh/issues)

Thanks,

Bryan

On Aug 1, 2018, at 14:55, peng wang [email protected] wrote:

Thanks for response,

I run my web application(Flask + Bokeh + IIS + IE ), the info from console is below. I update sourcedata in different threads and CustomJS, some codes are post below.

About very first 3 errors, I assume that errors are generated because I created several figures and ColumnSourceDatas in different threads, and use queues to update its’ sourcedata, but I can not sure. please help me clarify if all figures and ColumnSourceData should be in same *.py.

Sorry for those codes and thanks for your efforts.

code from file01.py

taptool.callback = CustomJS(args=dict(allSource=mainplot_source, \

                                     novosSource=novos_source, \
                                     subplotSource=subplot_source, \
                                     subplotColorsLength=subplot_colors_length, \
                                     novosLength=novos_length, \
                                     subplot=sub_plot \
                                    ),\
                           code = """

selection = require(“core/util/selection”)

indices = selection.get_indices(allSource)

if (novosSource.data[‘type’][i] === ‘OffBottom’)

                   {
                       if (novosSource.data['status'][i] === null)
                           continue
                       if (novosSource.data['status'][i] === 'Active')
                       {
                           subplotSource.data['B2SColors'][6] = 'green'
                           subplotSource.data['Text'][6] = 'Offbottom-Active'
                       } else if (novosSource.data['status'][i] === 'Completed')
                       {
                           subplotSource.data['B2SColors'][11] = 'green'
                           subplotSource.data['Text'][11] = 'Offbottom-Completed'
                       } else
                       {
                           if (subplotSource.data['B2SColors'][6] != 'green'){
                               subplotSource.data['B2SColors'][6] = 'yellow'
                               subplotSource.data['Text'][6] = 'Offbottom-Active'
                           }
                           if (subplotSource.data['B2SColors'][11] != 'green'){
                               subplotSource.data['B2SColors'][11] = 'yellow'
                               subplotSource.data['Text'][11] = 'Offbottom-Completed'
                           }
                       }
                       subplotSource.change.emit()
                       continue
                   }

file02.py

@gen.coroutine

def update_main_plot_source(main_plot, main_plot_dict, depth_list, mainplot_data_all, mainplot_source):

mainplot_source.data[‘HoleDepth’] = update_holeDepth_list(main_plot_dict, mainplot_data_all, depth_list)

mainplot_source.data[‘VBarTop’] = updateSourceData(‘VBarTop’, main_plot_dict, mainplot_source.data)

mainplot_source.data[‘VBarBottom’] = updateSourceData(‘VBarBottom’, main_plot_dict, mainplot_source.data)
mainplot_source.data[‘VBarColors’] = updateSourceData(‘VBarColors’, main_plot_dict, mainplot_source.data)
vBarType_list = updateSourceData(‘VBarType’, main_plot_dict, mainplot_source.data)

mainplot_source.data[‘VBarType’] = vBarType_list

main_plot.x_range.factors =

main_plot.x_range.factors = depth_list

@without_document_lock

def update_main_plot_chart( doc, \

                       update_main_plot_event, \
                       mainplot_source, \
                       main_plot, \
                       mainplot_data_all, \
                       checkbox_group_1_selections, \
                       checkbox_group_2_selections,\
                       checkbox_group_3_selections, \
                       all_connection_dict,\
                       rig, \
                       job, \
                       from_comboBx_group):

update_main_plot_event.wait()

main_plot_dict = {}

depth_list =

}

file01.py

update_main_plot_thread = Thread(name=‘update_main_plot_thread’, \

                                target =  lambda q, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12: q.put(all_main_plot.update_main_plot_chart(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)), \
                                args = (update_main_plot_queue, \
                                        doc, \
                                        update_main_plot_event, \
                                        mainplot_source, \
                                        main_plot, \
                                        mainplot_data_all, \
                                        checkbox_group_1_selections, \
                                        checkbox_group_2_selections,\
                                        checkbox_group_3_selections, \
                                        all_connection_dict,\
                                        rig, \
                                        job, \
                                        from_comboBx_group))

update_main_plot_thread.start()

update_main_plot_event.set()

On Wednesday, August 1, 2018 at 2:59:25 PM UTC-6, Bryan Van de ven wrote:

Hi,

I can’t reproduce any issue on OSX/Safari, I left a tab open and unused for 10 minutes and it worked fine after I returned to it. As far as I know, 1006 if for when the browser itself abnormally terminates a websocket connection for some reason. What platform/browser are you seeing this on? Can you reproduce this effect with any other browsers? Is there any error output in the server console when the session terminates, if you run the server with --log-level=trace?

Thanks,

Bryan

On Aug 1, 2018, at 13:28, peng wang [email protected] wrote:

Hi Guys,

Currently, I stuck on the issue which the websocket keeps alive around 3 mintue, and then I get this message

“[bokeh] Lost websocket 0 connection, 1006 ()”
“connection.js:95 [bokeh] Websocket connection 0 disconnected, will not attempt to reconnect”

What could I do if I like to keep wbsocket always open? I spend lot of tome on it and still have no any ideas.

Welcome any suggestions


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2a37f65d-df49-42a6-82ff-1c5296cd8ce2%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0fe72aef-653a-4193-b490-7a7cae3562f8%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Sorry, Server is not from CherryPy, I just run slider.py on windows.

Thanks

···

On Wednesday, August 1, 2018 at 4:35:42 PM UTC-6, peng wang wrote:

I did a test based on your suggestion, environmentis Flask(CherryPy Server, not default flask server ) + Bokeh + IIS(CGI, FastWCGI) + Chrome & IE. I Run slider.py. the issue is still there, please refer to the screenshot below.

Thanks a lot

On Wednesday, August 1, 2018 at 4:05:16 PM UTC-6, Bryan Van de ven wrote:

Additionally:

I believe the first three errors are currently a harmless nuisance, don’t worry about them for now (there is an open issue to deal with them).

Also, in the GH issue you make, can you confirm whether this problem happens with other browsers on windows?

Thanks,

Bryan

On Aug 1, 2018, at 15:03, Bryan Van de ven [email protected] wrote:

Hi,

It appears that this network error 12030 is something specific to IE/Edge:

    [https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs](https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs)

We will have to try and investigate. Can you do the following things:

  • see if this same problem happens with the simple sliders.py example

      [https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py](https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py)
    

If it does NOT happen with sliders.py, please try to provide a complete minimal script that does exhibit the problem. Being able to reproduce this will be crucial to investigating this. There is basically on chance we will be able to solve this without a way to reproduce the problem.

  • Make a GitHub issue with all of this information and a link to this thread:
    [https://github.com/bokeh/bokeh/issues](https://github.com/bokeh/bokeh/issues)

Thanks,

Bryan

On Aug 1, 2018, at 14:55, peng wang [email protected] wrote:

Thanks for response,

I run my web application(Flask + Bokeh + IIS + IE ), the info from console is below. I update sourcedata in different threads and CustomJS, some codes are post below.

About very first 3 errors, I assume that errors are generated because I created several figures and ColumnSourceDatas in different threads, and use queues to update its’ sourcedata, but I can not sure. please help me clarify if all figures and ColumnSourceData should be in same *.py.

Sorry for those codes and thanks for your efforts.

code from file01.py

taptool.callback = CustomJS(args=dict(allSource=mainplot_source, \

                                     novosSource=novos_source, \
                                     subplotSource=subplot_source, \
                                     subplotColorsLength=subplot_colors_length, \
                                     novosLength=novos_length, \
                                     subplot=sub_plot \
                                    ),\
                           code = """

selection = require(“core/util/selection”)

indices = selection.get_indices(allSource)

if (novosSource.data[‘type’][i] === ‘OffBottom’)

                   {
                       if (novosSource.data['status'][i] === null)
                           continue
                       if (novosSource.data['status'][i] === 'Active')
                       {
                           subplotSource.data['B2SColors'][6] = 'green'
                           subplotSource.data['Text'][6] = 'Offbottom-Active'
                       } else if (novosSource.data['status'][i] === 'Completed')
                       {
                           subplotSource.data['B2SColors'][11] = 'green'
                           subplotSource.data['Text'][11] = 'Offbottom-Completed'
                       } else
                       {
                           if (subplotSource.data['B2SColors'][6] != 'green'){
                               subplotSource.data['B2SColors'][6] = 'yellow'
                               subplotSource.data['Text'][6] = 'Offbottom-Active'
                           }
                           if (subplotSource.data['B2SColors'][11] != 'green'){
                               subplotSource.data['B2SColors'][11] = 'yellow'
                               subplotSource.data['Text'][11] = 'Offbottom-Completed'
                           }
                       }
                       subplotSource.change.emit()
                       continue
                   }

file02.py

@gen.coroutine

def update_main_plot_source(main_plot, main_plot_dict, depth_list, mainplot_data_all, mainplot_source):

mainplot_source.data[‘HoleDepth’] = update_holeDepth_list(main_plot_dict, mainplot_data_all, depth_list)

mainplot_source.data[‘VBarTop’] = updateSourceData(‘VBarTop’, main_plot_dict, mainplot_source.data)

mainplot_source.data[‘VBarBottom’] = updateSourceData(‘VBarBottom’, main_plot_dict, mainplot_source.data)
mainplot_source.data[‘VBarColors’] = updateSourceData(‘VBarColors’, main_plot_dict, mainplot_source.data)
vBarType_list = updateSourceData(‘VBarType’, main_plot_dict, mainplot_source.data)

mainplot_source.data[‘VBarType’] = vBarType_list

main_plot.x_range.factors =

main_plot.x_range.factors = depth_list

@without_document_lock

def update_main_plot_chart( doc, \

                       update_main_plot_event, \
                       mainplot_source, \
                       main_plot, \
                       mainplot_data_all, \
                       checkbox_group_1_selections, \
                       checkbox_group_2_selections,\
                       checkbox_group_3_selections, \
                       all_connection_dict,\
                       rig, \
                       job, \
                       from_comboBx_group):

update_main_plot_event.wait()

main_plot_dict = {}

depth_list =

}

file01.py

update_main_plot_thread = Thread(name=‘update_main_plot_thread’, \

                                target =  lambda q, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12: q.put(all_main_plot.update_main_plot_chart(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)), \
                                args = (update_main_plot_queue, \
                                        doc, \
                                        update_main_plot_event, \
                                        mainplot_source, \
                                        main_plot, \
                                        mainplot_data_all, \
                                        checkbox_group_1_selections, \
                                        checkbox_group_2_selections,\
                                        checkbox_group_3_selections, \
                                        all_connection_dict,\
                                        rig, \
                                        job, \
                                        from_comboBx_group))

update_main_plot_thread.start()

update_main_plot_event.set()

On Wednesday, August 1, 2018 at 2:59:25 PM UTC-6, Bryan Van de ven wrote:

Hi,

I can’t reproduce any issue on OSX/Safari, I left a tab open and unused for 10 minutes and it worked fine after I returned to it. As far as I know, 1006 if for when the browser itself abnormally terminates a websocket connection for some reason. What platform/browser are you seeing this on? Can you reproduce this effect with any other browsers? Is there any error output in the server console when the session terminates, if you run the server with --log-level=trace?

Thanks,

Bryan

On Aug 1, 2018, at 13:28, peng wang [email protected] wrote:

Hi Guys,

Currently, I stuck on the issue which the websocket keeps alive around 3 mintue, and then I get this message

“[bokeh] Lost websocket 0 connection, 1006 ()”
“connection.js:95 [bokeh] Websocket connection 0 disconnected, will not attempt to reconnect”

What could I do if I like to keep wbsocket always open? I spend lot of tome on it and still have no any ideas.

Welcome any suggestions


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2a37f65d-df49-42a6-82ff-1c5296cd8ce2%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0fe72aef-653a-4193-b490-7a7cae3562f8%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Great, that will make hopefully make this simple to reproduce. Can you clarify whether the problem also happens when viewing with Chrome?

Thanks,

Bryan

···

On Aug 1, 2018, at 15:37, peng wang <[email protected]> wrote:

Sorry, Server is not from CherryPy, I just run slider.py on windows.

Thanks

On Wednesday, August 1, 2018 at 4:35:42 PM UTC-6, peng wang wrote:
I did a test based on your suggestion, environmentis Flask(CherryPy Server, not default flask server ) + Bokeh + IIS(CGI, FastWCGI) + Chrome & IE. I Run slider.py. the issue is still there, please refer to the screenshot below.

Thanks a lot

On Wednesday, August 1, 2018 at 4:05:16 PM UTC-6, Bryan Van de ven wrote:
Additionally:

I believe the first three errors are currently a harmless nuisance, don't worry about them for now (there is an open issue to deal with them).

Also, in the GH issue you make, can you confirm whether this problem happens with other browsers on windows?

Thanks,

Bryan

> On Aug 1, 2018, at 15:03, Bryan Van de ven <[email protected]> wrote:
>
> Hi,
>
> It appears that this network error 12030 is something specific to IE/Edge:
>
> https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs
>
> We will have to try and investigate. Can you do the following things:
>
> * see if this same problem happens with the simple sliders.py example
>
> https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py
>
> If it does NOT happen with sliders.py, please try to provide a complete minimal script that does exhibit the problem. Being able to reproduce this will be crucial to investigating this. There is basically on chance we will be able to solve this without a way to reproduce the problem.
>
> * Make a GitHub issue with all of this information and a link to this thread:
>
> https://github.com/bokeh/bokeh/issues
>
> Thanks,
>
> Bryan
>
>> On Aug 1, 2018, at 14:55, peng wang <[email protected]> wrote:
>>
>> Thanks for response,
>>
>> I run my web application(Flask + Bokeh + IIS + IE ), the info from console is below. I update sourcedata in different threads and CustomJS, some codes are post below.
>>
>> About very first 3 errors, I assume that errors are generated because I created several figures and ColumnSourceDatas in different threads, and use queues to update its' sourcedata, but I can not sure. please help me clarify if all figures and ColumnSourceData should be in same *.py.
>>
>> Sorry for those codes and thanks for your efforts.
>>
>>
>>
>> ### code from file01.py
>>
>> taptool.callback = CustomJS(args=dict(allSource=mainplot_source, \
>> novosSource=novos_source, \
>> subplotSource=subplot_source, \
>> subplotColorsLength=subplot_colors_length, \
>> novosLength=novos_length, \
>> subplot=sub_plot \
>> ),\
>> code = """
>> selection = require("core/util/selection")
>> indices = selection.get_indices(allSource)
>> if (novosSource.data['type'][i] === 'OffBottom')
>> {
>> if (novosSource.data['status'][i] === null)
>> continue
>>
>> if (novosSource.data['status'][i] === 'Active')
>> {
>> subplotSource.data['B2SColors'][6] = 'green'
>> subplotSource.data['Text'][6] = 'Offbottom-Active'
>> } else if (novosSource.data['status'][i] === 'Completed')
>> {
>> subplotSource.data['B2SColors'][11] = 'green'
>> subplotSource.data['Text'][11] = 'Offbottom-Completed'
>> } else
>> {
>> if (subplotSource.data['B2SColors'][6] != 'green'){
>> subplotSource.data['B2SColors'][6] = 'yellow'
>> subplotSource.data['Text'][6] = 'Offbottom-Active'
>> }
>> if (subplotSource.data['B2SColors'][11] != 'green'){
>> subplotSource.data['B2SColors'][11] = 'yellow'
>> subplotSource.data['Text'][11] = 'Offbottom-Completed'
>> }
>> }
>> subplotSource.change.emit()
>> continue
>> }
>>
>>
>> ## file02.py ####
>>
>> @gen.coroutine
>> def update_main_plot_source(main_plot, main_plot_dict, depth_list, mainplot_data_all, mainplot_source):
>> mainplot_source.data['HoleDepth'] = update_holeDepth_list(main_plot_dict, mainplot_data_all, depth_list)
>> mainplot_source.data['VBarTop'] = updateSourceData('VBarTop', main_plot_dict, mainplot_source.data)
>> mainplot_source.data['VBarBottom'] = updateSourceData('VBarBottom', main_plot_dict, mainplot_source.data)
>> mainplot_source.data['VBarColors'] = updateSourceData('VBarColors', main_plot_dict, mainplot_source.data)
>> vBarType_list = updateSourceData('VBarType', main_plot_dict, mainplot_source.data)
>> mainplot_source.data['VBarType'] = vBarType_list
>> main_plot.x_range.factors =
>> main_plot.x_range.factors = depth_list
>>
>> @without_document_lock
>> def update_main_plot_chart( doc, \
>> update_main_plot_event, \
>> mainplot_source, \
>> main_plot, \
>> mainplot_data_all, \
>> checkbox_group_1_selections, \
>> checkbox_group_2_selections,\
>> checkbox_group_3_selections, \
>> all_connection_dict,\
>> rig, \
>> job, \
>> from_comboBx_group):
>> update_main_plot_event.wait()
>>
>> main_plot_dict = {}
>> depth_list =
>> }
>>
>>
>> ###### file01.py
>>
>> update_main_plot_thread = Thread(name='update_main_plot_thread', \
>> target = lambda q, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12: q.put(all_main_plot.update_main_plot_chart(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)), \
>> args = (update_main_plot_queue, \
>> doc, \
>> update_main_plot_event, \
>> mainplot_source, \
>> main_plot, \
>> mainplot_data_all, \
>> checkbox_group_1_selections, \
>> checkbox_group_2_selections,\
>> checkbox_group_3_selections, \
>> all_connection_dict,\
>> rig, \
>> job, \
>> from_comboBx_group))
>> update_main_plot_thread.start()
>> update_main_plot_event.set()
>>
>>
>>
>>
>>
>>
>>
>> On Wednesday, August 1, 2018 at 2:59:25 PM UTC-6, Bryan Van de ven wrote:
>> Hi,
>>
>> I can't reproduce any issue on OSX/Safari, I left a tab open and unused for 10 minutes and it worked fine after I returned to it. As far as I know, 1006 if for when the browser itself abnormally terminates a websocket connection for some reason. What platform/browser are you seeing this on? Can you reproduce this effect with any other browsers? Is there any error output in the server console when the session terminates, if you run the server with --log-level=trace?
>>
>> Thanks,
>>
>> Bryan
>>
>>> On Aug 1, 2018, at 13:28, peng wang <[email protected]> wrote:
>>>
>>> Hi Guys,
>>>
>>> Currently, I stuck on the issue which the websocket keeps alive around 3 mintue, and then I get this message
>>>
>>> "[bokeh] Lost websocket 0 connection, 1006 ()"
>>> "connection.js:95 [bokeh] Websocket connection 0 disconnected, will not attempt to reconnect"
>>>
>>> What could I do if I like to keep wbsocket always open? I spend lot of tome on it and still have no any ideas.
>>>
>>> Welcome any suggestions
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2a37f65d-df49-42a6-82ff-1c5296cd8ce2%40continuum.io.
>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout.
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
>> To post to this group, send email to [email protected].
>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0fe72aef-653a-4193-b490-7a7cae3562f8%40continuum.io.
>> For more options, visit https://groups.google.com/a/continuum.io/d/optout.
>

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/6b2c614a-82e8-4843-bbe0-aa838b9568a2%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Yes, same problem is there, if I use Chrome. Around 3 minutes, websocket is lost automatically.

···

On Wednesday, August 1, 2018 at 4:40:59 PM UTC-6, Bryan Van de ven wrote:

Great, that will make hopefully make this simple to reproduce. Can you clarify whether the problem also happens when viewing with Chrome?

Thanks,

Bryan

On Aug 1, 2018, at 15:37, peng wang [email protected] wrote:

Sorry, Server is not from CherryPy, I just run slider.py on windows.

Thanks

On Wednesday, August 1, 2018 at 4:35:42 PM UTC-6, peng wang wrote:

I did a test based on your suggestion, environmentis Flask(CherryPy Server, not default flask server ) + Bokeh + IIS(CGI, FastWCGI) + Chrome & IE. I Run slider.py. the issue is still there, please refer to the screenshot below.

Thanks a lot

On Wednesday, August 1, 2018 at 4:05:16 PM UTC-6, Bryan Van de ven wrote:

Additionally:

I believe the first three errors are currently a harmless nuisance, don’t worry about them for now (there is an open issue to deal with them).

Also, in the GH issue you make, can you confirm whether this problem happens with other browsers on windows?

Thanks,

Bryan

On Aug 1, 2018, at 15:03, Bryan Van de ven [email protected] wrote:

Hi,

It appears that this network error 12030 is something specific to IE/Edge:

    [https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs](https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs)

We will have to try and investigate. Can you do the following things:

  • see if this same problem happens with the simple sliders.py example

      [https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py](https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py)
    

If it does NOT happen with sliders.py, please try to provide a complete minimal script that does exhibit the problem. Being able to reproduce this will be crucial to investigating this. There is basically on chance we will be able to solve this without a way to reproduce the problem.

  • Make a GitHub issue with all of this information and a link to this thread:

      [https://github.com/bokeh/bokeh/issues](https://github.com/bokeh/bokeh/issues)
    

Thanks,

Bryan

On Aug 1, 2018, at 14:55, peng wang [email protected] wrote:

Thanks for response,

I run my web application(Flask + Bokeh + IIS + IE ), the info from console is below. I update sourcedata in different threads and CustomJS, some codes are post below.

About very first 3 errors, I assume that errors are generated because I created several figures and ColumnSourceDatas in different threads, and use queues to update its’ sourcedata, but I can not sure. please help me clarify if all figures and ColumnSourceData should be in same *.py.

Sorry for those codes and thanks for your efforts.

code from file01.py

taptool.callback = CustomJS(args=dict(allSource=mainplot_source,
novosSource=novos_source,
subplotSource=subplot_source,
subplotColorsLength=subplot_colors_length,
novosLength=novos_length,
subplot=sub_plot
),
code = “”"
selection = require(“core/util/selection”)
indices = selection.get_indices(allSource)
if (novosSource.data[‘type’][i] === ‘OffBottom’)
{
if (novosSource.data[‘status’][i] === null)
continue

                       if (novosSource.data['status'][i] === 'Active')
                       {
                           subplotSource.data['B2SColors'][6] = 'green'
                           subplotSource.data['Text'][6] = 'Offbottom-Active'
                       } else if (novosSource.data['status'][i] === 'Completed')
                       {
                           subplotSource.data['B2SColors'][11] = 'green'
                           subplotSource.data['Text'][11] = 'Offbottom-Completed'
                       } else
                       {
                           if (subplotSource.data['B2SColors'][6] != 'green'){
                               subplotSource.data['B2SColors'][6] = 'yellow'
                               subplotSource.data['Text'][6] = 'Offbottom-Active'
                           }
                           if (subplotSource.data['B2SColors'][11] != 'green'){
                               subplotSource.data['B2SColors'][11] = 'yellow'
                               subplotSource.data['Text'][11] = 'Offbottom-Completed'
                           }
                       }
                       subplotSource.change.emit()
                       continue
                   }

file02.py

@gen.coroutine
def update_main_plot_source(main_plot, main_plot_dict, depth_list, mainplot_data_all, mainplot_source):
mainplot_source.data[‘HoleDepth’] = update_holeDepth_list(main_plot_dict, mainplot_data_all, depth_list)
mainplot_source.data[‘VBarTop’] = updateSourceData(‘VBarTop’, main_plot_dict, mainplot_source.data)
mainplot_source.data[‘VBarBottom’] = updateSourceData(‘VBarBottom’, main_plot_dict, mainplot_source.data)
mainplot_source.data[‘VBarColors’] = updateSourceData(‘VBarColors’, main_plot_dict, mainplot_source.data)
vBarType_list = updateSourceData(‘VBarType’, main_plot_dict, mainplot_source.data)
mainplot_source.data[‘VBarType’] = vBarType_list
main_plot.x_range.factors =
main_plot.x_range.factors = depth_list

@without_document_lock
def update_main_plot_chart( doc,
update_main_plot_event,
mainplot_source,
main_plot,
mainplot_data_all,
checkbox_group_1_selections,
checkbox_group_2_selections,
checkbox_group_3_selections,
all_connection_dict,
rig,
job,
from_comboBx_group):
update_main_plot_event.wait()

main_plot_dict = {}
depth_list =
}

file01.py

update_main_plot_thread = Thread(name=‘update_main_plot_thread’,
target = lambda q, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12: q.put(all_main_plot.update_main_plot_chart(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)),
args = (update_main_plot_queue,
doc,
update_main_plot_event,
mainplot_source,
main_plot,
mainplot_data_all,
checkbox_group_1_selections,
checkbox_group_2_selections,
checkbox_group_3_selections,
all_connection_dict,
rig,
job,
from_comboBx_group))
update_main_plot_thread.start()
update_main_plot_event.set()

On Wednesday, August 1, 2018 at 2:59:25 PM UTC-6, Bryan Van de ven wrote:
Hi,

I can’t reproduce any issue on OSX/Safari, I left a tab open and unused for 10 minutes and it worked fine after I returned to it. As far as I know, 1006 if for when the browser itself abnormally terminates a websocket connection for some reason. What platform/browser are you seeing this on? Can you reproduce this effect with any other browsers? Is there any error output in the server console when the session terminates, if you run the server with --log-level=trace?

Thanks,

Bryan

On Aug 1, 2018, at 13:28, peng wang [email protected] wrote:

Hi Guys,

Currently, I stuck on the issue which the websocket keeps alive around 3 mintue, and then I get this message

“[bokeh] Lost websocket 0 connection, 1006 ()”
“connection.js:95 [bokeh] Websocket connection 0 disconnected, will not attempt to reconnect”

What could I do if I like to keep wbsocket always open? I spend lot of tome on it and still have no any ideas.

Welcome any suggestions


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2a37f65d-df49-42a6-82ff-1c5296cd8ce2%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0fe72aef-653a-4193-b490-7a7cae3562f8%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/6b2c614a-82e8-4843-bbe0-aa838b9568a2%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

So far, after many tests, I can tell that websocket issue is from Bokeh.

If I just run Flask project on Windows IIS, no problem. As this screenshot shown.

but if I run slider.py in the same environment, problem appears.

So, I just assume the issue is a kind of root Bokeh problem.

Thanks

···

On Wednesday, August 1, 2018 at 4:47:24 PM UTC-6, peng wang wrote:

Yes, same problem is there, if I use Chrome. Around 3 minutes, websocket is lost automatically.

On Wednesday, August 1, 2018 at 4:40:59 PM UTC-6, Bryan Van de ven wrote:

Great, that will make hopefully make this simple to reproduce. Can you clarify whether the problem also happens when viewing with Chrome?

Thanks,

Bryan

On Aug 1, 2018, at 15:37, peng wang [email protected] wrote:

Sorry, Server is not from CherryPy, I just run slider.py on windows.

Thanks

On Wednesday, August 1, 2018 at 4:35:42 PM UTC-6, peng wang wrote:

I did a test based on your suggestion, environmentis Flask(CherryPy Server, not default flask server ) + Bokeh + IIS(CGI, FastWCGI) + Chrome & IE. I Run slider.py. the issue is still there, please refer to the screenshot below.

Thanks a lot

On Wednesday, August 1, 2018 at 4:05:16 PM UTC-6, Bryan Van de ven wrote:

Additionally:

I believe the first three errors are currently a harmless nuisance, don’t worry about them for now (there is an open issue to deal with them).

Also, in the GH issue you make, can you confirm whether this problem happens with other browsers on windows?

Thanks,

Bryan

On Aug 1, 2018, at 15:03, Bryan Van de ven [email protected] wrote:

Hi,

It appears that this network error 12030 is something specific to IE/Edge:

    [https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs](https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs)

We will have to try and investigate. Can you do the following things:

  • see if this same problem happens with the simple sliders.py example

      [https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py](https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py)
    

If it does NOT happen with sliders.py, please try to provide a complete minimal script that does exhibit the problem. Being able to reproduce this will be crucial to investigating this. There is basically on chance we will be able to solve this without a way to reproduce the problem.

  • Make a GitHub issue with all of this information and a link to this thread:

      [https://github.com/bokeh/bokeh/issues](https://github.com/bokeh/bokeh/issues)
    

Thanks,

Bryan

On Aug 1, 2018, at 14:55, peng wang [email protected] wrote:

Thanks for response,

I run my web application(Flask + Bokeh + IIS + IE ), the info from console is below. I update sourcedata in different threads and CustomJS, some codes are post below.

About very first 3 errors, I assume that errors are generated because I created several figures and ColumnSourceDatas in different threads, and use queues to update its’ sourcedata, but I can not sure. please help me clarify if all figures and ColumnSourceData should be in same *.py.

Sorry for those codes and thanks for your efforts.

code from file01.py

taptool.callback = CustomJS(args=dict(allSource=mainplot_source,
novosSource=novos_source,
subplotSource=subplot_source,
subplotColorsLength=subplot_colors_length,
novosLength=novos_length,
subplot=sub_plot
),
code = “”"
selection = require(“core/util/selection”)
indices = selection.get_indices(allSource)
if (novosSource.data[‘type’][i] === ‘OffBottom’)
{
if (novosSource.data[‘status’][i] === null)
continue

                       if (novosSource.data['status'][i] === 'Active')
                       {
                           subplotSource.data['B2SColors'][6] = 'green'
                           subplotSource.data['Text'][6] = 'Offbottom-Active'
                       } else if (novosSource.data['status'][i] === 'Completed')
                       {
                           subplotSource.data['B2SColors'][11] = 'green'
                           subplotSource.data['Text'][11] = 'Offbottom-Completed'
                       } else
                       {
                           if (subplotSource.data['B2SColors'][6] != 'green'){
                               subplotSource.data['B2SColors'][6] = 'yellow'
                               subplotSource.data['Text'][6] = 'Offbottom-Active'
                           }
                           if (subplotSource.data['B2SColors'][11] != 'green'){
                               subplotSource.data['B2SColors'][11] = 'yellow'
                               subplotSource.data['Text'][11] = 'Offbottom-Completed'
                           }
                       }
                       subplotSource.change.emit()
                       continue
                   }

file02.py

@gen.coroutine
def update_main_plot_source(main_plot, main_plot_dict, depth_list, mainplot_data_all, mainplot_source):
mainplot_source.data[‘HoleDepth’] = update_holeDepth_list(main_plot_dict, mainplot_data_all, depth_list)
mainplot_source.data[‘VBarTop’] = updateSourceData(‘VBarTop’, main_plot_dict, mainplot_source.data)
mainplot_source.data[‘VBarBottom’] = updateSourceData(‘VBarBottom’, main_plot_dict, mainplot_source.data)
mainplot_source.data[‘VBarColors’] = updateSourceData(‘VBarColors’, main_plot_dict, mainplot_source.data)
vBarType_list = updateSourceData(‘VBarType’, main_plot_dict, mainplot_source.data)
mainplot_source.data[‘VBarType’] = vBarType_list
main_plot.x_range.factors =
main_plot.x_range.factors = depth_list

@without_document_lock
def update_main_plot_chart( doc,
update_main_plot_event,
mainplot_source,
main_plot,
mainplot_data_all,
checkbox_group_1_selections,
checkbox_group_2_selections,
checkbox_group_3_selections,
all_connection_dict,
rig,
job,
from_comboBx_group):
update_main_plot_event.wait()

main_plot_dict = {}
depth_list =
}

file01.py

update_main_plot_thread = Thread(name=‘update_main_plot_thread’,
target = lambda q, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12: q.put(all_main_plot.update_main_plot_chart(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)),
args = (update_main_plot_queue,
doc,
update_main_plot_event,
mainplot_source,
main_plot,
mainplot_data_all,
checkbox_group_1_selections,
checkbox_group_2_selections,
checkbox_group_3_selections,
all_connection_dict,
rig,
job,
from_comboBx_group))
update_main_plot_thread.start()
update_main_plot_event.set()

On Wednesday, August 1, 2018 at 2:59:25 PM UTC-6, Bryan Van de ven wrote:
Hi,

I can’t reproduce any issue on OSX/Safari, I left a tab open and unused for 10 minutes and it worked fine after I returned to it. As far as I know, 1006 if for when the browser itself abnormally terminates a websocket connection for some reason. What platform/browser are you seeing this on? Can you reproduce this effect with any other browsers? Is there any error output in the server console when the session terminates, if you run the server with --log-level=trace?

Thanks,

Bryan

On Aug 1, 2018, at 13:28, peng wang [email protected] wrote:

Hi Guys,

Currently, I stuck on the issue which the websocket keeps alive around 3 mintue, and then I get this message

“[bokeh] Lost websocket 0 connection, 1006 ()”
“connection.js:95 [bokeh] Websocket connection 0 disconnected, will not attempt to reconnect”

What could I do if I like to keep wbsocket always open? I spend lot of tome on it and still have no any ideas.

Welcome any suggestions


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2a37f65d-df49-42a6-82ff-1c5296cd8ce2%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0fe72aef-653a-4193-b490-7a7cae3562f8%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/6b2c614a-82e8-4843-bbe0-aa838b9568a2%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Does your Flask project use web sockets? If not I don't think it is a relevant observation. In any case as I said earlier I can't reproduce any problems on OSX/Safari, so at the very least this is a Windows specific issue with Bokeh. Can you make a GH issue so this investigation can be properly tracked an prioritized?

Bryan

···

On Aug 2, 2018, at 12:13, peng wang <[email protected]> wrote:

So far, after many tests, I can tell that websocket issue is from Bokeh.

If I just run Flask project on Windows IIS, no problem. As this screenshot shown.

but if I run slider.py in the same environment, problem appears.

So, I just assume the issue is a kind of root Bokeh problem.

Thanks

On Wednesday, August 1, 2018 at 4:47:24 PM UTC-6, peng wang wrote:
Yes, same problem is there, if I use Chrome. Around 3 minutes, websocket is lost automatically.

On Wednesday, August 1, 2018 at 4:40:59 PM UTC-6, Bryan Van de ven wrote:
Great, that will make hopefully make this simple to reproduce. Can you clarify whether the problem also happens when viewing with Chrome?

Thanks,

Bryan

> On Aug 1, 2018, at 15:37, peng wang <[email protected]> wrote:
>
> Sorry, Server is not from CherryPy, I just run slider.py on windows.
>
> Thanks
>
>
> On Wednesday, August 1, 2018 at 4:35:42 PM UTC-6, peng wang wrote:
> I did a test based on your suggestion, environmentis Flask(CherryPy Server, not default flask server ) + Bokeh + IIS(CGI, FastWCGI) + Chrome & IE. I Run slider.py. the issue is still there, please refer to the screenshot below.
>
> Thanks a lot
>
>
>
>
>
> On Wednesday, August 1, 2018 at 4:05:16 PM UTC-6, Bryan Van de ven wrote:
> Additionally:
>
> I believe the first three errors are currently a harmless nuisance, don't worry about them for now (there is an open issue to deal with them).
>
> Also, in the GH issue you make, can you confirm whether this problem happens with other browsers on windows?
>
> Thanks,
>
> Bryan
>
> > On Aug 1, 2018, at 15:03, Bryan Van de ven <[email protected]> wrote:
> >
> > Hi,
> >
> > It appears that this network error 12030 is something specific to IE/Edge:
> >
> > https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs
> >
> > We will have to try and investigate. Can you do the following things:
> >
> > * see if this same problem happens with the simple sliders.py example
> >
> > https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py
> >
> > If it does NOT happen with sliders.py, please try to provide a complete minimal script that does exhibit the problem. Being able to reproduce this will be crucial to investigating this. There is basically on chance we will be able to solve this without a way to reproduce the problem.
> >
> > * Make a GitHub issue with all of this information and a link to this thread:
> >
> > https://github.com/bokeh/bokeh/issues
> >
> > Thanks,
> >
> > Bryan
> >
> >> On Aug 1, 2018, at 14:55, peng wang <[email protected]> wrote:
> >>
> >> Thanks for response,
> >>
> >> I run my web application(Flask + Bokeh + IIS + IE ), the info from console is below. I update sourcedata in different threads and CustomJS, some codes are post below.
> >>
> >> About very first 3 errors, I assume that errors are generated because I created several figures and ColumnSourceDatas in different threads, and use queues to update its' sourcedata, but I can not sure. please help me clarify if all figures and ColumnSourceData should be in same *.py.
> >>
> >> Sorry for those codes and thanks for your efforts.
> >>
> >>
> >>
> >> ### code from file01.py
> >>
> >> taptool.callback = CustomJS(args=dict(allSource=mainplot_source, \
> >> novosSource=novos_source, \
> >> subplotSource=subplot_source, \
> >> subplotColorsLength=subplot_colors_length, \
> >> novosLength=novos_length, \
> >> subplot=sub_plot \
> >> ),\
> >> code = """
> >> selection = require("core/util/selection")
> >> indices = selection.get_indices(allSource)
> >> if (novosSource.data['type'][i] === 'OffBottom')
> >> {
> >> if (novosSource.data['status'][i] === null)
> >> continue
> >>
> >> if (novosSource.data['status'][i] === 'Active')
> >> {
> >> subplotSource.data['B2SColors'][6] = 'green'
> >> subplotSource.data['Text'][6] = 'Offbottom-Active'
> >> } else if (novosSource.data['status'][i] === 'Completed')
> >> {
> >> subplotSource.data['B2SColors'][11] = 'green'
> >> subplotSource.data['Text'][11] = 'Offbottom-Completed'
> >> } else
> >> {
> >> if (subplotSource.data['B2SColors'][6] != 'green'){
> >> subplotSource.data['B2SColors'][6] = 'yellow'
> >> subplotSource.data['Text'][6] = 'Offbottom-Active'
> >> }
> >> if (subplotSource.data['B2SColors'][11] != 'green'){
> >> subplotSource.data['B2SColors'][11] = 'yellow'
> >> subplotSource.data['Text'][11] = 'Offbottom-Completed'
> >> }
> >> }
> >> subplotSource.change.emit()
> >> continue
> >> }
> >>
> >>
> >> ## file02.py ####
> >>
> >> @gen.coroutine
> >> def update_main_plot_source(main_plot, main_plot_dict, depth_list, mainplot_data_all, mainplot_source):
> >> mainplot_source.data['HoleDepth'] = update_holeDepth_list(main_plot_dict, mainplot_data_all, depth_list)
> >> mainplot_source.data['VBarTop'] = updateSourceData('VBarTop', main_plot_dict, mainplot_source.data)
> >> mainplot_source.data['VBarBottom'] = updateSourceData('VBarBottom', main_plot_dict, mainplot_source.data)
> >> mainplot_source.data['VBarColors'] = updateSourceData('VBarColors', main_plot_dict, mainplot_source.data)
> >> vBarType_list = updateSourceData('VBarType', main_plot_dict, mainplot_source.data)
> >> mainplot_source.data['VBarType'] = vBarType_list
> >> main_plot.x_range.factors =
> >> main_plot.x_range.factors = depth_list
> >>
> >> @without_document_lock
> >> def update_main_plot_chart( doc, \
> >> update_main_plot_event, \
> >> mainplot_source, \
> >> main_plot, \
> >> mainplot_data_all, \
> >> checkbox_group_1_selections, \
> >> checkbox_group_2_selections,\
> >> checkbox_group_3_selections, \
> >> all_connection_dict,\
> >> rig, \
> >> job, \
> >> from_comboBx_group):
> >> update_main_plot_event.wait()
> >>
> >> main_plot_dict = {}
> >> depth_list =
> >> }
> >>
> >>
> >> ###### file01.py
> >>
> >> update_main_plot_thread = Thread(name='update_main_plot_thread', \
> >> target = lambda q, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12: q.put(all_main_plot.update_main_plot_chart(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)), \
> >> args = (update_main_plot_queue, \
> >> doc, \
> >> update_main_plot_event, \
> >> mainplot_source, \
> >> main_plot, \
> >> mainplot_data_all, \
> >> checkbox_group_1_selections, \
> >> checkbox_group_2_selections,\
> >> checkbox_group_3_selections, \
> >> all_connection_dict,\
> >> rig, \
> >> job, \
> >> from_comboBx_group))
> >> update_main_plot_thread.start()
> >> update_main_plot_event.set()
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> On Wednesday, August 1, 2018 at 2:59:25 PM UTC-6, Bryan Van de ven wrote:
> >> Hi,
> >>
> >> I can't reproduce any issue on OSX/Safari, I left a tab open and unused for 10 minutes and it worked fine after I returned to it. As far as I know, 1006 if for when the browser itself abnormally terminates a websocket connection for some reason. What platform/browser are you seeing this on? Can you reproduce this effect with any other browsers? Is there any error output in the server console when the session terminates, if you run the server with --log-level=trace?
> >>
> >> Thanks,
> >>
> >> Bryan
> >>
> >>> On Aug 1, 2018, at 13:28, peng wang <[email protected]> wrote:
> >>>
> >>> Hi Guys,
> >>>
> >>> Currently, I stuck on the issue which the websocket keeps alive around 3 mintue, and then I get this message
> >>>
> >>> "[bokeh] Lost websocket 0 connection, 1006 ()"
> >>> "connection.js:95 [bokeh] Websocket connection 0 disconnected, will not attempt to reconnect"
> >>>
> >>> What could I do if I like to keep wbsocket always open? I spend lot of tome on it and still have no any ideas.
> >>>
> >>> Welcome any suggestions
> >>>
> >>> --
> >>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> >>> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> >>> To post to this group, send email to [email protected].
> >>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2a37f65d-df49-42a6-82ff-1c5296cd8ce2%40continuum.io.
> >>> For more options, visit https://groups.google.com/a/continuum.io/d/optout.
> >>
> >>
> >> --
> >> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> >> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> >> To post to this group, send email to [email protected].
> >> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0fe72aef-653a-4193-b490-7a7cae3562f8%40continuum.io.
> >> For more options, visit https://groups.google.com/a/continuum.io/d/optout.
> >
>
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/6b2c614a-82e8-4843-bbe0-aa838b9568a2%40continuum.io.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/4a35f3df-4c38-4e10-a7bf-c7b71860b910%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Hi Peng,

I’ve run into similar issues with websockets timing out in JupyterHub running in AWS. The fix was to adjust the idle timeout of the ELB. I don’t know about IIS, but that would be my first guess.

Can you run this server locally and get the same 3-minute timeout? If so, can you get any helpful error messages from the server? If not, it probably points to the IIS config.

cheers,

Dennis

···

On Thu, Aug 2, 2018 at 12:40 PM Bryan Van de ven [email protected] wrote:

Does your Flask project use web sockets? If not I don’t think it is a relevant observation. In any case as I said earlier I can’t reproduce any problems on OSX/Safari, so at the very least this is a Windows specific issue with Bokeh. Can you make a GH issue so this investigation can be properly tracked an prioritized?

Bryan

On Aug 2, 2018, at 12:13, peng wang [email protected] wrote:

So far, after many tests, I can tell that websocket issue is from Bokeh.

If I just run Flask project on Windows IIS, no problem. As this screenshot shown.

but if I run slider.py in the same environment, problem appears.

So, I just assume the issue is a kind of root Bokeh problem.

Thanks

On Wednesday, August 1, 2018 at 4:47:24 PM UTC-6, peng wang wrote:

Yes, same problem is there, if I use Chrome. Around 3 minutes, websocket is lost automatically.

On Wednesday, August 1, 2018 at 4:40:59 PM UTC-6, Bryan Van de ven wrote:

Great, that will make hopefully make this simple to reproduce. Can you clarify whether the problem also happens when viewing with Chrome?

Thanks,

Bryan

On Aug 1, 2018, at 15:37, peng wang [email protected] wrote:

Sorry, Server is not from CherryPy, I just run slider.py on windows.

Thanks

On Wednesday, August 1, 2018 at 4:35:42 PM UTC-6, peng wang wrote:

I did a test based on your suggestion, environmentis Flask(CherryPy Server, not default flask server ) + Bokeh + IIS(CGI, FastWCGI) + Chrome & IE. I Run slider.py. the issue is still there, please refer to the screenshot below.

Thanks a lot

On Wednesday, August 1, 2018 at 4:05:16 PM UTC-6, Bryan Van de ven wrote:

Additionally:

I believe the first three errors are currently a harmless nuisance, don’t worry about them for now (there is an open issue to deal with them).

Also, in the GH issue you make, can you confirm whether this problem happens with other browsers on windows?

Thanks,

Bryan

On Aug 1, 2018, at 15:03, Bryan Van de ven [email protected] wrote:

Hi,

It appears that this network error 12030 is something specific to IE/Edge:

    [https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs](https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs)

We will have to try and investigate. Can you do the following things:

  • see if this same problem happens with the simple sliders.py example
    [https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py](https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py)

If it does NOT happen with sliders.py, please try to provide a complete minimal script that does exhibit the problem. Being able to reproduce this will be crucial to investigating this. There is basically on chance we will be able to solve this without a way to reproduce the problem.

  • Make a GitHub issue with all of this information and a link to this thread:
    [https://github.com/bokeh/bokeh/issues](https://github.com/bokeh/bokeh/issues)

Thanks,

Bryan

On Aug 1, 2018, at 14:55, peng wang [email protected] wrote:

Thanks for response,

I run my web application(Flask + Bokeh + IIS + IE ), the info from console is below. I update sourcedata in different threads and CustomJS, some codes are post below.

About very first 3 errors, I assume that errors are generated because I created several figures and ColumnSourceDatas in different threads, and use queues to update its’ sourcedata, but I can not sure. please help me clarify if all figures and ColumnSourceData should be in same *.py.

Sorry for those codes and thanks for your efforts.

code from file01.py

taptool.callback = CustomJS(args=dict(allSource=mainplot_source, \

                                     novosSource=novos_source, \
                                     subplotSource=subplot_source, \
                                     subplotColorsLength=subplot_colors_length, \
                                     novosLength=novos_length, \
                                     subplot=sub_plot \
                                    ),\
                           code = """

selection = require(“core/util/selection”)

indices = selection.get_indices(allSource)

if (novosSource.data[‘type’][i] === ‘OffBottom’)

                   {
                       if (novosSource.data['status'][i] === null)
                           continue
                       if (novosSource.data['status'][i] === 'Active')
                       {
                           subplotSource.data['B2SColors'][6] = 'green'
                           subplotSource.data['Text'][6] = 'Offbottom-Active'
                       } else if (novosSource.data['status'][i] === 'Completed')
                       {
                           subplotSource.data['B2SColors'][11] = 'green'
                           subplotSource.data['Text'][11] = 'Offbottom-Completed'
                       } else
                       {
                           if (subplotSource.data['B2SColors'][6] != 'green'){
                               subplotSource.data['B2SColors'][6] = 'yellow'
                               subplotSource.data['Text'][6] = 'Offbottom-Active'
                           }
                           if (subplotSource.data['B2SColors'][11] != 'green'){
                               subplotSource.data['B2SColors'][11] = 'yellow'
                               subplotSource.data['Text'][11] = 'Offbottom-Completed'
                           }
                       }
                       subplotSource.change.emit()
                       continue
                   }

file02.py

@gen.coroutine

def update_main_plot_source(main_plot, main_plot_dict, depth_list, mainplot_data_all, mainplot_source):

mainplot_source.data[‘HoleDepth’] = update_holeDepth_list(main_plot_dict, mainplot_data_all, depth_list)

mainplot_source.data[‘VBarTop’] = updateSourceData(‘VBarTop’, main_plot_dict, mainplot_source.data)

mainplot_source.data[‘VBarBottom’] = updateSourceData(‘VBarBottom’, main_plot_dict, mainplot_source.data)

mainplot_source.data[‘VBarColors’] = updateSourceData(‘VBarColors’, main_plot_dict, mainplot_source.data)

vBarType_list = updateSourceData(‘VBarType’, main_plot_dict, mainplot_source.data)

mainplot_source.data[‘VBarType’] = vBarType_list

main_plot.x_range.factors =

main_plot.x_range.factors = depth_list

@without_document_lock

def update_main_plot_chart( doc, \

                       update_main_plot_event, \
                       mainplot_source, \
                       main_plot, \
                       mainplot_data_all, \
                       checkbox_group_1_selections, \
                       checkbox_group_2_selections,\
                       checkbox_group_3_selections, \
                       all_connection_dict,\
                       rig, \
                       job, \
                       from_comboBx_group):

update_main_plot_event.wait()

main_plot_dict = {}

depth_list =

}

file01.py

update_main_plot_thread = Thread(name=‘update_main_plot_thread’, \

                                target =  lambda q, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12: q.put(all_main_plot.update_main_plot_chart(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)), \
                                args = (update_main_plot_queue, \
                                        doc, \
                                        update_main_plot_event, \
                                        mainplot_source, \
                                        main_plot, \
                                        mainplot_data_all, \
                                        checkbox_group_1_selections, \
                                        checkbox_group_2_selections,\
                                        checkbox_group_3_selections, \
                                        all_connection_dict,\
                                        rig, \
                                        job, \
                                        from_comboBx_group))

update_main_plot_thread.start()

update_main_plot_event.set()

On Wednesday, August 1, 2018 at 2:59:25 PM UTC-6, Bryan Van de ven wrote:

Hi,

I can’t reproduce any issue on OSX/Safari, I left a tab open and unused for 10 minutes and it worked fine after I returned to it. As far as I know, 1006 if for when the browser itself abnormally terminates a websocket connection for some reason. What platform/browser are you seeing this on? Can you reproduce this effect with any other browsers? Is there any error output in the server console when the session terminates, if you run the server with --log-level=trace?

Thanks,

Bryan

On Aug 1, 2018, at 13:28, peng wang [email protected] wrote:

Hi Guys,

Currently, I stuck on the issue which the websocket keeps alive around 3 mintue, and then I get this message

“[bokeh] Lost websocket 0 connection, 1006 ()”

“connection.js:95 [bokeh] Websocket connection 0 disconnected, will not attempt to reconnect”

What could I do if I like to keep wbsocket always open? I spend lot of tome on it and still have no any ideas.

Welcome any suggestions

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2a37f65d-df49-42a6-82ff-1c5296cd8ce2%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0fe72aef-653a-4193-b490-7a7cae3562f8%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/6b2c614a-82e8-4843-bbe0-aa838b9568a2%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/4a35f3df-4c38-4e10-a7bf-c7b71860b910%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A66AAD14-6B1B-4F70-9F2D-B7BE2038B559%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Thanks a lot for feedback. Bryan suggested that I could load or post my source code, screenshot etc to GH if I hope the problem is solved soon. I highly appreciated it. But, my case is so special and is deployed on IIS, I just wonder if it is necessary if I post code on GH without the running environment.

This issus took me entire week to work on, but I still can not figure out. And my project is so urgent as well as makes me out of breath.

Dennis, you are right. If I run project on my local pc. there is no any problem related to websocket. If I run on IIS and have access to website. then websocket issue is caused. I agree with you this problem is about IIS configuration. After I modified some parameters(Max Value) as shown on screenshots below… The websocket lasts around 20 minutes and then closed

I have no any idea about this issue, Would you share with me what kind of parameters you modified on AWS EJB? Thanks a lot.

Also I have another idea about this problem. If websocket is closed, I like to reconnect with the websocket, Is there anyway for developer to setup or reconnect with websocket in javascript as similar solution shown below?

function connect() {

var ws = new WebSocket('ws://172.20.101.16:5006/bk_plotter');

ws.onmessage = function(e) {

console.log('Message:', e.data);

};

ws.onclose = function(e) {

console.log('Socket is closed. Reconnect will be attempted in 1 second.', e.reason);

setTimeout(function() {

  connect();

}, 1000);

};

ws.onerror = function(err) {

console.error('Socket encountered error: ', err.message, 'Closing socket');

ws.close();

};

}

connect();

``

Hopefully, guys from Our Group give me a hand.

Thanks again.

···

On Sunday, August 5, 2018 at 12:41:26 PM UTC-6, Dennis O’Brien wrote:

Hi Peng,

I’ve run into similar issues with websockets timing out in JupyterHub running in AWS. The fix was to adjust the idle timeout of the ELB. I don’t know about IIS, but that would be my first guess.

Can you run this server locally and get the same 3-minute timeout? If so, can you get any helpful error messages from the server? If not, it probably points to the IIS config.

cheers,

Dennis

On Thu, Aug 2, 2018 at 12:40 PM Bryan Van de ven [email protected] wrote:

Does your Flask project use web sockets? If not I don’t think it is a relevant observation. In any case as I said earlier I can’t reproduce any problems on OSX/Safari, so at the very least this is a Windows specific issue with Bokeh. Can you make a GH issue so this investigation can be properly tracked an prioritized?

Bryan

On Aug 2, 2018, at 12:13, peng wang [email protected] wrote:

So far, after many tests, I can tell that websocket issue is from Bokeh.

If I just run Flask project on Windows IIS, no problem. As this screenshot shown.

but if I run slider.py in the same environment, problem appears.

So, I just assume the issue is a kind of root Bokeh problem.

Thanks

On Wednesday, August 1, 2018 at 4:47:24 PM UTC-6, peng wang wrote:

Yes, same problem is there, if I use Chrome. Around 3 minutes, websocket is lost automatically.

On Wednesday, August 1, 2018 at 4:40:59 PM UTC-6, Bryan Van de ven wrote:

Great, that will make hopefully make this simple to reproduce. Can you clarify whether the problem also happens when viewing with Chrome?

Thanks,

Bryan

On Aug 1, 2018, at 15:37, peng wang [email protected] wrote:

Sorry, Server is not from CherryPy, I just run slider.py on windows.

Thanks

On Wednesday, August 1, 2018 at 4:35:42 PM UTC-6, peng wang wrote:

I did a test based on your suggestion, environmentis Flask(CherryPy Server, not default flask server ) + Bokeh + IIS(CGI, FastWCGI) + Chrome & IE. I Run slider.py. the issue is still there, please refer to the screenshot below.

Thanks a lot

On Wednesday, August 1, 2018 at 4:05:16 PM UTC-6, Bryan Van de ven wrote:

Additionally:

I believe the first three errors are currently a harmless nuisance, don’t worry about them for now (there is an open issue to deal with them).

Also, in the GH issue you make, can you confirm whether this problem happens with other browsers on windows?

Thanks,

Bryan

On Aug 1, 2018, at 15:03, Bryan Van de ven [email protected] wrote:

Hi,

It appears that this network error 12030 is something specific to IE/Edge:

    [https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs](https://stackoverflow.com/questions/48789032/microsoft-edge-websockets-script12030-error-after-30secs)

We will have to try and investigate. Can you do the following things:

  • see if this same problem happens with the simple sliders.py example
    [https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py](https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py)

If it does NOT happen with sliders.py, please try to provide a complete minimal script that does exhibit the problem. Being able to reproduce this will be crucial to investigating this. There is basically on chance we will be able to solve this without a way to reproduce the problem.

  • Make a GitHub issue with all of this information and a link to this thread:
    [https://github.com/bokeh/bokeh/issues](https://github.com/bokeh/bokeh/issues)

Thanks,

Bryan

On Aug 1, 2018, at 14:55, peng wang [email protected] wrote:

Thanks for response,

I run my web application(Flask + Bokeh + IIS + IE ), the info from console is below. I update sourcedata in different threads and CustomJS, some codes are post below.

About very first 3 errors, I assume that errors are generated because I created several figures and ColumnSourceDatas in different threads, and use queues to update its’ sourcedata, but I can not sure. please help me clarify if all figures and ColumnSourceData should be in same *.py.

Sorry for those codes and thanks for your efforts.

code from file01.py

taptool.callback = CustomJS(args=dict(allSource=mainplot_source, \

                                     novosSource=novos_source, \
                                     subplotSource=subplot_source, \
                                     subplotColorsLength=subplot_colors_length, \
                                     novosLength=novos_length, \
                                     subplot=sub_plot \
                                    ),\
                           code = """

selection = require(“core/util/selection”)

indices = selection.get_indices(allSource)

if (novosSource.data[‘type’][i] === ‘OffBottom’)

                   {
                       if (novosSource.data['status'][i] === null)
                           continue
                       if (novosSource.data['status'][i] === 'Active')
                       {
                           subplotSource.data['B2SColors'][6] = 'green'
                           subplotSource.data['Text'][6] = 'Offbottom-Active'
                       } else if (novosSource.data['status'][i] === 'Completed')
                       {
                           subplotSource.data['B2SColors'][11] = 'green'
                           subplotSource.data['Text'][11] = 'Offbottom-Completed'
                       } else
                       {
                           if (subplotSource.data['B2SColors'][6] != 'green'){
                               subplotSource.data['B2SColors'][6] = 'yellow'
                               subplotSource.data['Text'][6] = 'Offbottom-Active'
                           }
                           if (subplotSource.data['B2SColors'][11] != 'green'){
                               subplotSource.data['B2SColors'][11] = 'yellow'
                               subplotSource.data['Text'][11] = 'Offbottom-Completed'
                           }
                       }
                       subplotSource.change.emit()
                       continue
                   }

file02.py

@gen.coroutine

def update_main_plot_source(main_plot, main_plot_dict, depth_list, mainplot_data_all, mainplot_source):

mainplot_source.data[‘HoleDepth’] = update_holeDepth_list(main_plot_dict, mainplot_data_all, depth_list)

mainplot_source.data[‘VBarTop’] = updateSourceData(‘VBarTop’, main_plot_dict, mainplot_source.data)

mainplot_source.data[‘VBarBottom’] = updateSourceData(‘VBarBottom’, main_plot_dict, mainplot_source.data)

mainplot_source.data[‘VBarColors’] = updateSourceData(‘VBarColors’, main_plot_dict, mainplot_source.data)

vBarType_list = updateSourceData(‘VBarType’, main_plot_dict, mainplot_source.data)

mainplot_source.data[‘VBarType’] = vBarType_list

main_plot.x_range.factors =

main_plot.x_range.factors = depth_list

@without_document_lock

def update_main_plot_chart( doc, \

                       update_main_plot_event, \
                       mainplot_source, \
                       main_plot, \
                       mainplot_data_all, \
                       checkbox_group_1_selections, \
                       checkbox_group_2_selections,\
                       checkbox_group_3_selections, \
                       all_connection_dict,\
                       rig, \
                       job, \
                       from_comboBx_group):

update_main_plot_event.wait()

main_plot_dict = {}

depth_list =

}

file01.py

update_main_plot_thread = Thread(name=‘update_main_plot_thread’, \

                                target =  lambda q, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12: q.put(all_main_plot.update_main_plot_chart(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)), \
                                args = (update_main_plot_queue, \
                                        doc, \
                                        update_main_plot_event, \
                                        mainplot_source, \
                                        main_plot, \
                                        mainplot_data_all, \
                                        checkbox_group_1_selections, \
                                        checkbox_group_2_selections,\
                                        checkbox_group_3_selections, \
                                        all_connection_dict,\
                                        rig, \
                                        job, \
                                        from_comboBx_group))

update_main_plot_thread.start()

update_main_plot_event.set()

On Wednesday, August 1, 2018 at 2:59:25 PM UTC-6, Bryan Van de ven wrote:

Hi,

I can’t reproduce any issue on OSX/Safari, I left a tab open and unused for 10 minutes and it worked fine after I returned to it. As far as I know, 1006 if for when the browser itself abnormally terminates a websocket connection for some reason. What platform/browser are you seeing this on? Can you reproduce this effect with any other browsers? Is there any error output in the server console when the session terminates, if you run the server with --log-level=trace?

Thanks,

Bryan

On Aug 1, 2018, at 13:28, peng wang [email protected] wrote:

Hi Guys,

Currently, I stuck on the issue which the websocket keeps alive around 3 mintue, and then I get this message

“[bokeh] Lost websocket 0 connection, 1006 ()”

“connection.js:95 [bokeh] Websocket connection 0 disconnected, will not attempt to reconnect”

What could I do if I like to keep wbsocket always open? I spend lot of tome on it and still have no any ideas.

Welcome any suggestions

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2a37f65d-df49-42a6-82ff-1c5296cd8ce2%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0fe72aef-653a-4193-b490-7a7cae3562f8%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/6b2c614a-82e8-4843-bbe0-aa838b9568a2%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/4a35f3df-4c38-4e10-a7bf-c7b71860b910%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A66AAD14-6B1B-4F70-9F2D-B7BE2038B559%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.